Наборы данных: два больших текстовых файла для обучения и проверки того, что все их слова размечены. часть данных похожа на следующее: «В пятницу большое жюри округа Фултон объявило, что расследование недавних первичных выборов в Атланте не дало« никаких доказательств »того, что какие-либо нарушения имели место».
Вопрос: Как я могу заменитькаждое слово в тестовых данных, не встречаемое при обучении со словом «unk» в Python?
До сих пор я составлял словарь по следующим кодам для подсчета частоты каждого слова в файле:
#open text file and assign it to varible with the name "readfile"
readfile= open('C:/Users/amtol/Desktop/NLP/Homework_1/brown-train.txt','r')
writefile=open('C:/Users/amtol/Desktop/NLP/Homework_1/brown-trainReplaced.txt','w')
# Create an empty dictionary
d = dict()
# Loop through each line of the file
for line in readfile:
# Split the line into words
words = line.split(" ")
# Iterate over each word in line
for word in words:
# Check if the word is already in dictionary
if word in d:
# Increment count of word by 1
d[word] = d[word] + 1
else:
# Add the word to dictionary with count 1
d[word] = 1
#replace all words occurring in the training data once with the token<unk>.
for key in list(d.keys()):
line= d[key]
if (line==1):
line="<unk>"
writefile.write(str(d))
else:
writefile.write(str(d))
#close the file that we have created and we wrote the new data in that
writefile.close()
Честно говоря, приведенный выше код не работает с writefile.write (str (d)), который я хочу записать в новый текстовый файл, но с помощью print (key, ":", line) он работаети показывает частоту каждого слова, но в консоли, которая не создает новый файл. если вы также знаете причину этого, пожалуйста, дайте мне знать.