我有一個文件包含許多波斯語句子。每行包含一個句子,然後是一個「標籤」,然後是一個詞,再次是一個「標籤」,然後是一個英文單詞。我必須知道句子中唯一字的數量(標籤後面的單詞不應該在計算中)。爲此,我將文件更改爲列表,所以我有一個包含大量行的列表,每行包含三個索引;句子,波斯詞,英語單詞。現在我可以達到這些句子。問題是,我寫的代碼分別返回每行獨特字的數量。例如,如果文件有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