当专有名词是复合词时标记词性

人工智能 自然语言处理
2021-10-27 05:36:58

通过词性标注,可以假设给定句子的单词是noun/verb等,但如果句子是例如:

"My favourite book is harry potter and the prizoner of azkaban"

请注意,我收到的输入将来自聊天界面,因此无法期望数据具有固定格式。有没有办法"harry potter and the prizoner of azkaban"从此类消息中识别为专有名词?

目前此查询标记为:

My|PRP$ 
favourite|JJ 
book|NN 
is|VBZ 
harry|JJ 
potter|NN 
and|CC 
the|DT 
prizoner|NN 
of|IN 
azkaban|NN

我想知道这是否可以通过某种方式处理,或者是否有另一种算法可以处理这个问题?

1个回答

我猜您的问题是 NER(命名实体识别)标记的一种形式。NER标签由PER(person)、LOC(location)、ORG(organization)和MISC(miscellaneous)和O(other)组成。在 NER 标记算法的帮助下,您可能会:

My(O) favorite(O) book(O) is(O) harry(B-MISC) potter(I-MISC) and(I-MISC) the(I-MISC) prisoner(I-MISC) of(I-MISC) azkaban(I-MISC).

现在您可以通过识别不同的 NER 标记来标记您的文本,并使用相同的 NER 标记加入“B-”和“I-”前缀。例如,您将“harry potter and ...”作为单个标记,它是一个 MISC,从 harry(因为 harry 是 B-MISC)开始,到 azkaban(因为 azkaban 有最后一个连续的 I-MISC 标签)。现在您可以让您的 POS 标记器将“哈利波特……”作为单个标记,它必须用“NN”标记它

此问题的另一种解决方案称为“分块”。它基于一组规则工作并检测名词短语(NP)。在这里,您定义一个规则并为其创建正则表达式语句。例如,您将所有连续NN的 s 定义为单个 NP (harry potter):<NN>+或 aDT后跟一串NNs (棕狐): <DT>?<NN>+现在您根据正则表达式匹配方法标记您的文本。但在您的情况下,将如此长的 NP 分块几乎是不可能的。因为找到这个 NP 作为 NP 候选者的规则,也会错误地发现很多其他字符串作为 NP 候选者,而它们根本不是 NP。(见nltk:信息提取