【问题标题】:Extract relevant sentences to entity提取相关句子到实体
【发布时间】:2013-07-20 04:39:11
【问题描述】:
您是否知道 NLP 中的一些论文或算法能够从与给定实体(术语)相关的文本中提取句子。我想处理一些评论(主要是技术),但我发现许多评论提到不止一种产品(他们做比较)。我想从该文本中仅提取与一种产品相关的句子,或删除与特定命名实体(产品)无关的句子。
我的questin是怎么做的?有相关的论文吗?这样的事情是由某些工具包或 api 完成的吗?
【问题讨论】:
标签:
machine-learning
nlp
semantics
semantic-web
【解决方案1】:
您想要的是一个命名实体识别器 (NER)。给定一个输入句子,NER 会将句子中的各种实体识别为人员、组织、产品等。然后您可以检查识别为产品的实体,并相应地保留或丢弃该句子。一种非常简单的可能性是在 Python 中使用 NLTK 的命名实体识别器。这是一个例子:
import nltk
sent = "Albert Einstein spent many years at Princeton University in New Jersey"
sent1 = nltk.word_tokenize(sent)
sent2 = nltk.pos_tag(sent1)
sent3 = nltk.ne_chunk(sent2)
print sent3
输出将是:
(S
(PERSON Albert/NNP)
(PERSON Einstein/NNP)
spent/VBD
many/JJ
years/NNS
at/IN
(ORGANIZATION Princeton/NNP University/NNP)
in/IN
(GPE New/NNP Jersey/NNP))
NLTK 非常适合这个简单的示例,但老实说,我不确定它的准确性或是否可以对其进行定制以适合您的目的(识别产品)。但我知道Stanford NER 既可定制又准确,因此您可能想看看上面的链接。