我如何使用西班牙语的词义消歧?
How can i use Word Sense Disambiguation with spanish?
我正在上一门 udemy 课程(所有示例都是英文的),但问题总是在我开始使用西班牙语时,总是缺少库或兼容性。我从 https://www.datos.gov.co/Ciencia-Tecnolog-a-e-Innovaci-n/LAS-WordNet-una-WordNet-para-el-espa-ol-obtenida-c/8z8d-85m7 下载了 CSV 格式的数据,但我正在尝试执行以下代码,但因 NoneType 错误而崩溃,由于上下文的描述,有没有人知道如何处理它?谢谢
import nltk
#nltk.download("omw")
from nltk.corpus import wordnet
for ss in wordnet.synsets("casco", lang="spa"):
print(ss, ss.definition)
from nltk.wsd import lesk
from nltk.tokenize import word_tokenize
cntxt1 = lesk(word_tokenize("El casco antiguo de Barcelona es muy bonito"), "casco")
print(cntxt1, cntxt1..definition())
cntxt2 = lesk(word_tokenize("El casco nuevo que te has comprado para la motocicleta no me gusta"), "casco")
print(cntxt2, cntxt2.definition())
错误:
print(cntxt1, cntxt1.definition())
AttributeError: 'NoneType' object has no attribute 'definition'
我查看了 the source for the lesk
function,如果它没有明确传递一个 synsets
参数,它会通过调用 wordnet.synsets(ambiguous_word)
创建一个参数,但它不会传递语言选项或任何东西.
如果找不到单词的同义词集,它只是 returns None
因此会出现错误。您可以显式传递一个同义词集,例如:
cntxt1 = lesk(word_tokenize("El casco antiguo de Barcelona es muy bonito"),
"casco", synsets=wordnet.synsets("casco", lang="spa"))
我正在上一门 udemy 课程(所有示例都是英文的),但问题总是在我开始使用西班牙语时,总是缺少库或兼容性。我从 https://www.datos.gov.co/Ciencia-Tecnolog-a-e-Innovaci-n/LAS-WordNet-una-WordNet-para-el-espa-ol-obtenida-c/8z8d-85m7 下载了 CSV 格式的数据,但我正在尝试执行以下代码,但因 NoneType 错误而崩溃,由于上下文的描述,有没有人知道如何处理它?谢谢
import nltk
#nltk.download("omw")
from nltk.corpus import wordnet
for ss in wordnet.synsets("casco", lang="spa"):
print(ss, ss.definition)
from nltk.wsd import lesk
from nltk.tokenize import word_tokenize
cntxt1 = lesk(word_tokenize("El casco antiguo de Barcelona es muy bonito"), "casco")
print(cntxt1, cntxt1..definition())
cntxt2 = lesk(word_tokenize("El casco nuevo que te has comprado para la motocicleta no me gusta"), "casco")
print(cntxt2, cntxt2.definition())
错误:
print(cntxt1, cntxt1.definition())
AttributeError: 'NoneType' object has no attribute 'definition'
我查看了 the source for the lesk
function,如果它没有明确传递一个 synsets
参数,它会通过调用 wordnet.synsets(ambiguous_word)
创建一个参数,但它不会传递语言选项或任何东西.
如果找不到单词的同义词集,它只是 returns None
因此会出现错误。您可以显式传递一个同义词集,例如:
cntxt1 = lesk(word_tokenize("El casco antiguo de Barcelona es muy bonito"),
"casco", synsets=wordnet.synsets("casco", lang="spa"))