У меня есть файл, который состоит из многих персидских предложений. каждая строка содержит предложение, затем «вкладку», затем слово, снова «вкладку», а затем английское слово. Я должен знать только количество уникальных слов предложений (слова после вкладок не должны вычисляться). Для этого я изменил файл на список, поэтому у меня есть список, который содержит много строк, и каждая строка содержит три индекса; предложение, персидское слово, английское слово. Теперь я могу выполнить предложения. Проблема в том, что код, который я написал, возвращает количество уникальных слов каждой строки отдельно. Например, если файл имеет 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)
Выборочные данные:
باد بارش برف وزش باد, کولاک یخبندان سطح ветер
Вы применяете «нормализатор» только к предложению? – Kasramvd
да. потому что я извлек их из более крупного корпуса. Но я сам пометил слова после вкладок. поэтому просто предложения требуют нормализации – Vahideh
Итак, еще один вопрос: неужели этот модуль имеет функцию 'word_tokenizer'? Как NLTK – Kasramvd