Ste*_*eve 5 python nlp text-analysis
我一直在探索 NLP 技术,目的是确定调查评论的主题(然后将其与情感分析结合使用)。我想要发表高水平的声明,例如“10% 的调查受访者对客户经理做出了积极评价(+情绪)”。
\n\n我的方法使用了命名实体识别(NER)。现在,我正在处理真实的数据,我开始了解与识别句子主语相关的一些复杂性和细微差别。以下是主语为客户经理的 5 个句子示例。出于演示目的,我已将命名实体以粗体显示。
\n\n我发现三个挑战增加了我的任务的复杂性
\n\n其中同义词问题是最常见的问题,其次是歧义问题。根据我所看到的,缩写问题在我的数据中并不常见。
\n\n是否有任何 NLP 技术可以帮助以相对较高的置信度处理这些问题?
\n据我了解,你所说的“主题”是,给定一个句子,一个陈述所涉及的实体 - 在你的例子中,史蒂夫是客户经理。
基于这个假设,这里有一些技术以及它们如何帮助您:
(依赖)解析
由于您并不是严格语法意义上的主语,因此user7344209基于依赖项解析建议的方法可能对您没有帮助。在诸如“I like Steve”之类的句子中,语法主语是“I”,尽管您可能希望找到“Steve”作为“主语”。
命名实体识别
您已经使用了它,并且检测诸如 Steve 之类的人的姓名会很棒。我不太确定的是“客户经理”的例子。Daniel 提供的输出和我自己对斯坦福 CoreNLP 的测试都没有将其识别为命名实体 - 这是正确的,它确实不是命名实体:
更广泛的东西(例如建议的提及识别)可能会更好,但它基本上标记了每个可能太宽泛的名词短语。如果我理解正确的话,你想为每个句子找到一个主语。
共指消解
共指解析是检测“史蒂夫”和“客户经理”是同一实体的关键技术。例如,斯坦福 CoreNLP 就有这样的模块。
为了使其在您的示例中起作用,您必须让它同时处理几个句子,因为您想找到它们之间的链接。这是您的一些示例的示例(简短版本):
可视化有点乱,但基本上找到了以下共指链:
考虑到前两条链以及一些后处理,您可以发现所有四个语句都关于同一实体。
语义相似度
就客户、业务和关系经理而言,我发现 CoreNLP 共指解析器实际上已经找到了链,尽管术语不同。
更一般地说,如果您认为共指解析器不能很好地处理同义词和释义,您还可以尝试包含语义相似性的度量。NLP 中有很多关于预测两个短语是否同义的工作。
一些方法是:
使用这些相似性度量的一个想法是识别两个句子中的实体,然后在两个句子中的实体之间进行成对比较,如果一对的相似度高于阈值,则将其视为同一实体。