Machine learning 为什么是;机器学习;将两者都列为“;机器学习;及;机器学习;?

Machine learning 为什么是;机器学习;将两者都列为“;机器学习;及;机器学习;?,machine-learning,nlp,spacy,topic-modeling,lemmatization,Machine Learning,Nlp,Spacy,Topic Modeling,Lemmatization,我正在运行一些文本的LDA。当我对生成的主题进行可视化处理时,我发现“机器学习”二元结构已经被列为“机器学习”和“机器学习”。以下是我所能提供的最简单的可复制示例: import en_core_web_sm tokenized = [ [ 'artificially_intelligent', 'funds', 'generating', 'excess', 'returns', 'artificial_intelligence', 'deep_lea

我正在运行一些文本的LDA。当我对生成的主题进行可视化处理时,我发现“机器学习”二元结构已经被列为“机器学习”和“机器学习”。以下是我所能提供的最简单的可复制示例:

import en_core_web_sm

tokenized = [
    [
        'artificially_intelligent', 'funds', 'generating', 'excess', 'returns',
        'artificial_intelligence', 'deep_learning', 'compelling', 'reasons',
        'join_us', 'artificially_intelligent', 'fund', 'develop', 'ai',
        'machine_learning', 'capabilities', 'real', 'cases', 'big', 'players',
        'industry', 'discover', 'emerging', 'trends', 'latest_developments',
        'ai', 'machine_learning', 'industry', 'players', 'trading',
        'investing', 'live', 'investment', 'models', 'learn', 'develop',
        'compelling', 'business', 'case', 'clients', 'ceos', 'adopt', 'ai',
        'machine_learning', 'investment', 'approaches', 'rare', 'gathering',
        'talents', 'including', 'quants', 'data_scientists', 'researchers',
        'ai', 'machine_learning', 'experts', 'investment_officers', 'explore',
        'solutions', 'challenges', 'potential', 'risks', 'pitfalls',
        'adopting', 'ai', 'machine_learning'
    ],
    [
        'recent_years', 'topics', 'data_science', 'artificial_intelligence',
        'machine_learning', 'big_data', 'become_increasingly', 'popular',
        'growth', 'fueled', 'collection', 'availability', 'data',
        'continually', 'increasing', 'processing', 'power', 'storage', 'open',
        'source', 'movement', 'making', 'tools', 'widely', 'available',
        'result', 'already', 'witnessed', 'profound', 'changes', 'work',
        'rest', 'play', 'trend', 'increase', 'world', 'finance', 'impacted',
        'investment', 'managers', 'particular', 'join_us', 'explore',
        'data_science', 'means', 'finance_professionals'
    ]
]

nlp = en_core_web_sm.load(disable=['parser', 'ner'])

def lemmatization(descrips, allowed_postags=None):
    if allowed_postags is None:
        allowed_postags = ['NOUN', 'ADJ', 'VERB',
                           'ADV']
    lemmatized_descrips = []
    for descrip in descrips:
        doc = nlp(" ".join(descrip))
        lemmatized_descrips.append([
            token.lemma_ for token in doc if token.pos_ in allowed_postags
        ])
    return lemmatized_descrips

lemmatized = lemmatization(tokenized)

print(lemmatized)
您会注意到,“机器学习”在标记化的输入中找不到,但“机器学习”和“机器学习”都在标记化的输出中找到


这是什么原因?我能指望它会引起其他二元语法/三元语法的问题吗?

我想你误解了词性标注和柠檬化的过程

词性标注不仅基于单词本身(我不知道哪个是你的母语,但这在许多语言中都很常见),还基于周围的单词(例如,一个常见的学习规则是,在许多语句中,动词的前面通常有一个名词,它代表动词的代理)

当你把所有这些“标记”传递给你的柠檬化者时,斯帕西的柠檬化者会试图“猜测”你的单字的词性

在许多情况下,它会选择一个默认名词,如果它不在普通和不规则名词的查找表中,它会尝试使用通用规则(例如去掉复数“s”)

在其他情况下,它会根据一些模式(最后的“-ing”)选择一个默认动词,这可能是您的情况。由于任何词典中都不存在动词“machine_learning”(在其模型中没有实例),因此它将采用“else”路径并应用通用规则

因此,机器学习很可能是通过一个通用的“ing”到“e”规则(例如,在make->make,baking->bake的情况下)来实现的,这是许多常规动词所共有的

请看这个测试示例:

for descrip in tokenized:
        doc = nlp(" ".join(descrip))
        print([
            (token.pos_, token.text) for token in doc
        ])

输出:

[(“名词”,“人工智能”),(“名词”,“资金”),(“动词”, '生成',('ADJ','excess'),('NOUN','returns'),('NOUN', "人工智能","名词","深度学习","形容词",, "引人注目","名词","理由","主张","加入我们","名词",, "人工智能","名词","基金","名词","发展",, (‘动词’、‘人工智能’、(‘动词’、‘机器学习’)、(‘名词’, "能力","形容词","实数","名词","案例","形容词","大, (“名词”、“玩家”)、(“名词”、“行业”)、(“动词”、“发现”), (‘动词’,‘新兴’,(‘名词’,‘趋势’,(‘名词’,), "最新发展","动词","人工智能","动词","机器学习",, (“名词”、“行业”)、(“名词”、“玩家”)、(“名词”、“交易”), (‘动词’、‘投资’)、(‘形容词’、‘生活’)、(‘名词’、‘投资’), (‘名词’、‘模型’、(‘动词’、‘学习’)、(‘动词’、‘发展’)、(‘形容词’, "引人注目","名词","商业","名词","案例","名词",, "客户","名词","首席执行官","动词","采纳","动词",", (‘ADJ’、‘机器学习’、(‘名词’、‘投资’)、(‘名词’, "接近","形容词","罕见","动词","聚集","名词",, "人才","动词","包括","名词","数量","名词",, "数据科学家","名词","研究人员","动词","人工智能","形容词",, "机器学习","名词","专家","名词",, “投资官员”)、(“动词”、“探索”)、(“名词”、“解决方案”), (‘动词’、‘挑战’、(‘形容词’、‘潜在’)、(‘名词’、‘风险’), (‘名词’、‘陷阱’)、(‘动词’、‘采纳’)、(‘动词’、‘ai’)、(‘名词’, “机器学习”)]

基于上下文,你将机器学习作为动词和名词。但是请注意,仅仅将单词串联起来会让您变得混乱,因为它们在自然语言中的顺序并不像预期的那样

即使是人类也无法理解并正确标记此文本:

创造超额回报的智能基金 人工智能深入学习令人信服的理由加入我们 人工智能基金开发人工智能机器学习能力 真实案例行业大玩家发现新兴趋势 最新发展ai机器学习行业参与者交易 投资现场投资模型学习开发引人注目的业务 案例客户首席执行官采用人工智能机器学习投资方法 聚集人才,包括量子数据、科学家和研究人员 机器学习专家投资官员探索解决方案 采用人工智能机器学习挑战潜在风险陷阱


我想你误解了词性标注和柠檬化的过程

词性标注不仅基于单词本身(我不知道哪个是你的母语,但这在许多语言中都很常见),还基于周围的单词(例如,一个常见的学习规则是,在许多语句中,动词的前面通常有一个名词,它代表动词的代理)

当你把所有这些“标记”传递给你的柠檬化者时,斯帕西的柠檬化者会试图“猜测”你的单字的词性

在许多情况下,它会选择一个默认名词,如果它不在普通和不规则名词的查找表中,它会尝试使用通用规则(例如去掉复数“s”)

在其他情况下,它会根据一些模式(最后的“-ing”)选择一个默认动词,这可能是您的情况。由于任何词典中都不存在动词“machine_learning”(在其模型中没有实例),因此它将采用“else”路径并应用通用规则

因此,机器学习很可能是通过一个通用的“ing”到“e”规则(例如,在make->make,baking->bake的情况下)来实现的,这是许多常规动词所共有的

请看这个测试示例:

for descrip in tokenized:
        doc = nlp(" ".join(descrip))
        print([
            (token.pos_, token.text) for token in doc
        ])

输出:

[(“名词”,“人工智能”),(“名词”,“资金”),(“动词”, '生成',('ADJ','excess'),('NOUN','returns'),('NOUN', "人工智能","名词","深度学习","形容词",,