【发布时间】:2021-07-27 09:03:58
【问题描述】:
我有一个包含 20,000 个单词的列表。我想知道这 20k 个单词中的哪些单词在某种程度上是“奇怪的”。这是文本清理任务的一部分。
Albóndiga 很好,huticotai 不是我知道的西班牙语单词...56%$3estapa 也不是
这意味着我必须将孤立的拒绝/变位词与某些事实来源进行比较。每个人都推荐 SpaCy。很好。
然而,不知何故,使用下面的代码和一个包含几十个单词的测试文件,spaCy 认为它们都是“ROOT”单词。 Si hablas castellano, sabrás que así no es。 从技术上讲,我不想对任何东西进行词形还原!我想阻止这些话。 我只想将 20k 长的单词表与我作为说西班牙语的语言学家可以查看的内容配对,以确定正在发生什么样的疯狂 demadre (B.S.)。
这是我得到的输出示例:
- trocito NOUN ROOT trocito
- ayuntamiento NOUN ROOT ayuntamiento
- eyre 名词词根 eyre
- suscribíos NOUN ROOT suscribío
- 梅斯卡尔 ADJ ROOT 梅斯卡尔
- marivent 动词根 mariventir
- inversores NOUN ROOT inversor
- stenger 动词词根 stenger
显然,“stenger”不是西班牙语单词,尽管 spaCy 认为它是天真的。 Mezcal 是一个名词(也是一个非常好的时间)。你明白了。
这是我的代码:
import spacy
nlp = spacy.load("es_core_news_sm")
new_lst = []
with open("vocabu_suse.txt", 'r') as lst:
for i in lst:
# print(i)
new_lst.append(i.strip())
for i in new_lst:
j = nlp(i)
for token in j:
print(token.text, token.pos_, token.dep_, token.lemma_)
【问题讨论】:
标签: nlp spacy stemming lemmatization