【发布时间】:2016-10-30 19:48:48
【问题描述】:
我有一个波斯语文件(一个波斯语句子,一个“tab”,然后是一个波斯语单词,又是一个“tab”,然后是一个英语单词)。我必须计算波斯语句子中唯一单词的数量,而不是制表符后的波斯语和英语单词。代码如下:
from hazm import*
file = "F.txt"
def WordsProbs (file):
words = set()
with open (file, encoding = "utf-8") as f1:
normalizer = Normalizer()
for line in f1:
tmp = line.strip().split("\t")
words.update(set(normalizer.normalize(tmp[0].split())))
print(len(words), "unique words")
print (words)
要访问句子,我必须用“\t”分隔每一行。要访问句子的每个单词,我必须拆分 tmp[0]。问题是,当我运行代码时,会发生以下错误。这是因为 tmp[0] 之后的分裂。但是如果我在 tmp[0] 之后省略这个拆分,它只会计算字母而不是唯一的单词。我该如何解决? (是否有另一种方法可以编写此代码来计算唯一词?)。
错误: 回溯(最近一次通话最后): 文件“C:\Users\yasini\Desktop\16.py”,第 15 行,在 WordsProbs(文件) WordsProbs 中的文件“C:\Users\yasini\Desktop\16.py”,第 10 行 words.update(set(normalizer.normalize(tmp[0].split()))) 文件“C:\Python34\lib\site-packages\hazm\Normalizer.py”,第 46 行,标准化 文本 = self.character_refinement(文本) 文件“C:\Python34\lib\site-packages\hazm\Normalizer.py”,第 65 行,在 character_refinement 中 text = text.translate(self.translations) AttributeError: 'list' 对象没有属性 'translate'
【问题讨论】:
标签: python-3.x nlp