我有一个文件包含许多波斯语句子。每行包含一个句子,然后是一个“标签”,然后是一个词,再次是一个“标签”,然后是一个英文单词。我必须知道句子中唯一字的数量(标签后面的单词不应该在计算中)。为此,我将文件更改为列表,所以我有一个包含大量行的列表,每行包含三个索引;句子,波斯词,英语单词。现在我可以达到这些句子。问题是,我写的代码分别返回每行独特字的数量。例如,如果文件有100行,它会返回100个数字,每个数字都在一个新行中。但我想要所有数字的总和,并且只有一个数字表示唯一字的总数。我如何更改代码?计算列表第一列的唯一字的总数
from hazm import*
def WordsProbs (file):
with open (file, encoding = "utf-8") as f1:
normalizer = Normalizer()
for line in f1:
tmp = line.strip().split("\t")
tmp[0] = normalizer.normalize(tmp[0])
corpus.append(tmp)
for row in corpus:
UniqueWords = len(set(row[0].split()))
print (UniqueWords)
的样品数据:
بادبارشبرفوزشباد,کولاکیخبندانسطح风
你只在句子上应用'Normalizer'吗? – Kasramvd
是的。因为我从一个非常大的语料库中提取它们。但是我标出了自己的标签。所以只是句子需要规范化 – Vahideh
所以还有一个问题,这个模块有没有任何机会可以使用word_tokenizer函数?像NLTK – Kasramvd