nlp = spacy.load(name=os.path.join(spacy_path, 'models/model-best'))
doc = nlp(u'Jag heter Alex Nilsson. Hon heter Lina')
# My name is Alex Nilsson. Her name is Lina
for token in doc:
print(token.text, token.pos_, token.dep_)
# OUTPUT:
#Jag PRON nsubj
#heter VERB ROOT
#Alex PROPN obj
#Nilsson PROPN flat:name
#. PUNCT punct
#Hon PRON nsubj
#heter VERB parataxis
#Lina PROPN obj
POS-Tagger和Dependency Parser似乎都可以工作。没有用的是句子分割和名词块。
for sent in doc.sents:
print(sent.text)
# OUTPUT:
#Jag heter Alex. Hon heter Lina
for chunk in doc.noun_chunks:
print(chunk.text, chunk.root.text, chunk.root.dep_,
chunk.root.head.text)
# OUTPUT:
#
因此,句子不会拆分,名词块也不会输出。据我了解,spaCy对两个功能都使用了依赖解析器。但是如上所示,Dependency Parser应该可以正常工作。这两个工作还需要更多的东西吗?也许我缺少明显的东西?
感谢您的帮助!
答案 0 :(得分:0)
对此不太确定,但由于doc.sents不为空,因此我认为判决有效。它似乎工作异常。我会尝试解析较大的文本(但仍然很小),并可能使用较长的句子。由于哨兵通过查找从属标记来构建句子,因此较长的句子不太可能合并为一个句子。
对于名词_chunks,我的理解(来自documentation)是,该语言必须具有在语言数据的syntax_iterators.py文件中定义的名词_chuncks方法。它似乎没有被自动训练。