确定哨兵的主体

2024-09-26 18:03:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在探索NLP技术,目的是确定调查评论的主题(然后我将其与情绪分析结合使用)。我想做一些高层次的陈述,比如“10%的调查对象对客户经理做出了积极的评价(+情绪)”。在

我的方法使用了Named Entity Recognition (NER)。现在我正在处理真实的数据,我开始了解一些与确定句子主语相关的复杂性和细微差别。这里有5个例句,主题是客户经理。为了演示的目的,我将命名实体以粗体显示。在

  1. 我们的客户经理很棒,他总是多花点功夫!在
  2. 史蒂夫我们的客户经理很棒,他总是走得更远!在
  3. 史蒂夫我们的客户关系经理很好,他总是额外的 英里!在
  4. 史蒂文很棒,他总是走得更远!在
  5. 史蒂夫·史密斯(Steve Smith)很棒,他总是走得更远!在
  6. 我们的业务经理。太棒了,他总是多跑一英里!在

我看到三个挑战增加了我的任务的复杂性

  1. 同义词:客户经理vs关系经理vs业务经理。这在一定程度上是特定于领域的,并且随着调查目标受众的不同而变化。在
  2. 缩写:经理。vs经理
  3. 模棱两可-是否“Steven”是“Steve Smith”&因此 “客户经理”。在

其中同义词问题是最常见的问题,其次是歧义问题。根据我所见,在我的数据中,缩写问题并不常见。在

是否有任何NLP技术可以帮助处理这些问题中的任何一个以相对高的信心?在


Tags: 数据目的主题nlp评论技术经理复杂性
3条回答

如果您没有太多的数据需要训练,那么您可能可以尝试使用依赖性分析工具,并提取具有主题标识的依赖项对(如果使用Stanford Parser,则通常是nsubj)。在

据我所知,你所说的主题“是,给出一个句子,一个声明的实体-在你的例子中,客户经理史蒂夫。在

基于这一假设,以下是一些技巧及其对您的帮助:

(依赖)分析

由于您不是严格语法意义上的主语,因此user7344209基于依赖分析的方法可能帮不了你。在“我喜欢史蒂夫”这样的句子中,语法主语是“我”,尽管你可能想把“史蒂夫”当作“主语”。在

命名实体识别

你已经用过了,如果能检测到像史蒂夫这样的人的名字,那就太棒了。我不太确定的是“客户经理”的例子。Daniel提供的输出和我自己对Stanford CoreNLP的测试都没有将其识别为一个名为的实体-这是正确的,它确实不是一个名为实体:

enter image description here

一些更宽泛的东西,如建议的提及标识可能更好,但它基本上标记了每个可能过于宽泛的名词短语。如果我没听错,你想在每个句子里找到一个主语。在

共指消解

共指消解是检测“Steve”和“account manager”是同一个实体的关键技术。斯坦福大学CoreNLP就有这样的module。在

为了在你的例子中起作用,你必须让它同时处理几个句子,因为你想找到它们之间的联系。下面是一个示例(简短版本)中的一些示例:

enter image description here

可视化有点混乱,但基本上发现了以下共指链:

  • 史蒂夫•史密斯
  • 史蒂夫我们的客户经理,他是我们的客户经理
  • 我们的
  • 额外的一英里

考虑到前两个链,以及一些后期处理,您可以发现所有四个语句都是关于同一个实体的。在

语义相似度

在account、business和relationship manager的例子中,我发现CoreNLP共指解析程序实际上已经找到了链,尽管术语不同。在

更一般地说,如果您认为共指消解器不能很好地处理同义词和释义,您还可以尝试包含语义相似性度量。在自然语言处理中,有大量的工作要做,即预测两个短语是否同义。在

一些方法是:

  • 在诸如Wordnet这样的同义词词典中查找同义词-例如使用nltk(python),如图here
  • 更好的是,根据WordNet中定义的关系计算一个相似性度量-例如使用SEMILAR(Java)
  • 使用单词的连续表示来计算相似性,例如基于LSA或LDA-SEMILAR也可以
  • 使用最近的神经网络风格的单词嵌入,比如word2vec或{a7}-后者很容易与{a8}(python)一起使用

使用这些相似性度量的一个想法是识别两个句子中的实体,然后对两个句子中的实体进行两两比较,如果一对句子的相似度高于阈值,则将其视为同一个实体。在

我喜欢你用内线的方法。我在我们的系统中看到了您的输入: enter image description here

提及检测输出也可能有用: enter image description here

关于你的第二点,涉及缩写,这是一个很难解决的问题。但是我们这里有entity-similarity模块,可能会有用。这会考虑到honorifics

关于第三点,共同参考问题,请尝试coref模块: enter image description here

顺便说一句,上面的数字来自这里的演示:http://deagol.cs.illinois.edu:8080

相关问题 更多 >

    热门问题