POS标签和NER用于具有空间的中文文本


  • 我正在尝试打印中文文本中存在的实体和pos。
  • 我已经安装了#!pip3安装jieba,并使用Google colab进行以下脚本。

但是我得到了实体的空元组,而pos_没有结果。

from spacy.lang.zh import Chinese
nlp = Chinese()
doc = nlp(u"蘋果公司正考量用一億元買下英國的新創公司")
doc.ents
# returns (), i.e. empty tuple

for word in doc:
print(word.text, word.pos_)
''' returns
蘋果 
公司 
正 
考量 
用 
一 
億元 
買 
下 
英國 
的 
新創 
公司 
'''

我是NLP的新手。我想知道正确的方法是什么?

编辑 3/21:Spacy 现在支持 NER 和 POS 标记

在此处查找 SpaCy 模型:https://spacy.io/models/zh

旧答案:

SpaCy 是一个很棒的软件包,但到目前为止还不支持中文,所以我认为这就是你没有得到 POS 结果的原因 - 即使你的句子是

"苹果正在考虑以10亿美元收购英国初创公司">

在繁体中文中,因此应返回"苹果"和"英国"作为ent等。

对于繁体中文更广泛的NLP方法,您可以尝试使用斯坦福中文NLP包 - 您使用的是python,并且有可用于python的版本(请参阅演示脚本或Medium上的介绍),但原始版本是Java,如果您对此更熟悉的话。

不幸的是,spaCy 还没有预训练的中文模型(见这里),这意味着您必须使用默认的Chinese()模型,该模型仅执行标记化,没有 POS 标记或实体识别。

不过,关于中文的spaCy肯定有一些工作正在进行中,请检查这里的问题。

最新更新