2017-02-19 34 views
2

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

所以,我的问题如下:是否有一种方法可以添加由两个单词组成的特殊情况,以便SpaCy将它们正确标记为正确?为了保持榜样,“纽约新奥尔良”被公认为两个地点“纽约”和“新奥尔良” - 因为我为他们每个人增加了一个特例。
或者还有另一个最佳实践(我可能错过了)来实现这一目标?

回答

0

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

输出是

('GPE', 'New York') 
('GPE', 'New Orleans') 
+0

谢谢您的回答!我应该提到我正在使用德语模式。对不起,那是我的错。我使用了这个例子,因为如果使用德国模式,SpaCy无法识别“New York New Orleans”中的两个位置(但它正确地识别正如您用英文模型指出的位置)。 我想SpaCy只能识别主要位置。当我以“Carson City Santa Rosa”为例试用英文模型时,它会检测到“ORG”“Carson City Santa Rosa”。 – jfrehner

+0

是的,在这种情况下,只有使用逗号分隔文本时,spacy才会识别位置:doc = nlp(“Carson City,Santa Rosa”)。这个将给每个单词GPE – titipata