【发布时间】:2019-11-27 19:51:39
【问题描述】:
我正在尝试使用 spaCy 对文本进行词形还原。由于 spaCy 使用 -PRON- 作为人称代词的引理,我想在所有这些情况下保留原始文本。
这是我的代码的相关部分:
...
fout = open('test.txt', 'w+')
doc = nlp(text)
for word in doc:
if word.lemma_ == "-PRON-":
write = word.text
print(write)
else:
write = word.lemma_
fout.write(str(write))
fout.write(" ")
...
对于 spaCy 赋予引理“-PRON-”的情况,print 语句会打印原始单词。
但是,我的输出文件 (test.txt) 对于这些情况总是包含“-PRON-”,即使我希望它为这些情况(我、我们等)写下原始单词
我错过了什么?
我尝试了不同的版本,包括使用 pos_ 标签来识别代词等,但总是得到相同的结果,即我的输出包含'-PRON-'s
【问题讨论】:
-
上面的代码对我有用。它正确地对所有单词进行词形还原,但不影响代词。你确定你的例子在你的机器上失败了吗?什么版本的斯派西?什么版本的 Python?
-
非常感谢您的检查。我有 spaCy 2.2.2 版,Python 3.7.4 版。
-
我今天早上再次运行它,它仍然在输出文件中生成“-PRON-”,即使它正确识别了它应该生成文本的所有实例。不知道发生了什么。
标签: spacy lemmatization