Spacy 中文文本的词性标注和 NER
POS tagging and NER for Chinese Text with Spacy
- 我正在尝试打印中文文本中存在的实体和位置。
- 我已经安装了 # !pip3 install 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 新手。我想知道正确的做法是什么?
不幸的是,spaCy 还没有预训练的中文模型(参见 here),这意味着您必须使用默认的 Chinese()
模型,它只执行标记化,没有 POS 标记或实体认出。
虽然 spaCy 的中文确实有一些正在进行的工作,请检查问题 here。
编辑 3/21:Spacy 现在支持 CN
的 NER 和 POS 标记
在这里找到 SpaCy 模型:https://spacy.io/models/zh
旧答案:
SpaCy 是一个很棒的软件包,但目前还不支持中文,所以我认为这就是您没有获得 POS 结果的原因 - 即使您的句子是
"Apple is looking at buying U.K. startup for billion"
在繁体中文中,因此应该 return“Apple”和“U.K”。作为 ent
,等等。
对于繁体中文的更广泛的 NLP 方法,您可以尝试使用 Stanford Chinese NLP package - you are using python, and there are versions available for python (see a demo script or an intro on Medium),但如果您更习惯的话,原文是 Java。
- 我正在尝试打印中文文本中存在的实体和位置。
- 我已经安装了 # !pip3 install 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 新手。我想知道正确的做法是什么?
不幸的是,spaCy 还没有预训练的中文模型(参见 here),这意味着您必须使用默认的 Chinese()
模型,它只执行标记化,没有 POS 标记或实体认出。
虽然 spaCy 的中文确实有一些正在进行的工作,请检查问题 here。
编辑 3/21:Spacy 现在支持 CN
的 NER 和 POS 标记在这里找到 SpaCy 模型:https://spacy.io/models/zh
旧答案:
SpaCy 是一个很棒的软件包,但目前还不支持中文,所以我认为这就是您没有获得 POS 结果的原因 - 即使您的句子是
"Apple is looking at buying U.K. startup for billion"
在繁体中文中,因此应该 return“Apple”和“U.K”。作为 ent
,等等。
对于繁体中文的更广泛的 NLP 方法,您可以尝试使用 Stanford Chinese NLP package - you are using python, and there are versions available for python (see a demo script or an intro on Medium),但如果您更习惯的话,原文是 Java。