在执行情绪分析时,如何让机器理解我指的是苹果(iphone),而不是苹果(水果)?
感谢您的建议!
嗯,有几种方法,
我会从检查大写字母开始,通常,当提到一个名字时,第一个字母是大写的。
在进行情感分析之前,我会使用一些词性和命名实体识别来标记相关的词。
斯坦福 CoreNLP是一个很好的文本分析项目,它将教你基本概念。
来自 CoreNLP 的示例:
您可以看到标签如何帮助您。
并查看更多信息
正如 Ofiris 所述,NER 只是解决问题的一种方法。我觉得用词嵌入来表示你的词更有效。这样,机器会自动识别单词的上下文。例如,“Apple”主要与“eat”一起出现,但是如果给定的输入“Apple”与“mobile”或该域中的任何其他词一起出现,机器将理解它是“iPhone apple”而不是“apple fruit” ”。有 2 种流行的方法来生成词嵌入,例如 word2vec 和 fasttext。Gensim 为 word2vec 和 fasttext 提供了更可靠的实现。
https://radimrehurek.com/gensim/models/word2vec.html https://radimrehurek.com/gensim/models/fasttext.html
许多开源预训练的 NER 模型已经解决了这个问题。无论如何,您可以尝试重新训练现有的 NER 模型以对其进行微调以解决此问题。您可以在此处找到 Spacy NER 所做的 NER 结果演示。
如果存在日期、知名品牌、vip 或历史人物,您可以使用 NER(命名实体识别)算法;在这种情况下,正如 Ofiris 所建议的,Stanford CoreNLP 提供了一个很好的命名实体识别器。
对于多义词的更一般的消歧(即,具有多个意义的词,例如“好”),您可以使用与词义消歧 (WSD) 算法相结合的词性标注器。可以在此处找到后者的示例,但我不知道为此目的有任何可免费下载的库。