3

我想在 SpaCy 的帮助下从用户提供的不同句子中提取位置(例如,当用户输入“New York New Orleans”时,我会从中得到“New York”和“New Orleans”这两个位置)。由于 SpaCy 提供了向其标记器添加特殊情况的非常方便的可能性,因此我尝试将它们用于不同的位置(如此处的文档中所述。只要位置只包含一个单词,一切正常。但是一旦位置包含两个或多个单词(如前面提到的“纽约”、“新奥尔良”等示例),特殊情况就不再正确处理。
我想这是因为特殊情况只在之后处理文本被分割成标记(文本被分割在每个空白处,如此处所述。这将意味着 SpaCy 将文本拆分,例如“New York New Orleans”到标记“New”“York”“New”“Orleans”,然后无法匹配任何标记上的特殊情况。

所以,我的问题如下:有没有办法可以添加由两个单词组成的特殊情况,以便 SpaCy 正确标记它们?继续这个例子,“New York New Orleans”被认为是“New York”和“New Orleans”这两个位置——因为我确实为它们中的每一个添加了一个特殊情况。
或者是否有另一种最佳实践(我可能错过了)来实现这一目标?

4

1 回答 1

0

我使用了实体识别spacy?当您进行实体识别时,您可以过滤等于GPE稍后的标签。

import spacy
nlp = spacy.load('en')
doc = nlp("New York New Orleans")

for ent in doc.ents:
    print((ent.label_, ent.text))

输出是

('GPE', 'New York')
('GPE', 'New Orleans')
于 2017-02-19T22:04:29.707 回答