После долгих исследований и опросов друзей, я все еще остаюсь тупицей и не знаю, как решить эту проблему.
Итак, для домашнего задания мы должны определить функцию, которая обращается к двум файлов, первый из которых представляет собой текстовый файл со следующим предложением, из которого мы должны вычислить частоты слов:
В Берлине, разделенном Берлинской стеной, два ангела, Дамиэль и Кассиэль, наблюдайте за городом, невидимым и неслышным для его жителей.
Мы также должны включить запятые и точки: каждый отдельный элемент уже отмечен (отдельные элементы окружены пробелами, включая запятые и точки ). Затем частоты слов должны быть введены в новый текстовый файл как «word: count» и в том порядке, в котором они появляются, то есть:
In: 1
a: 1
Берлин: 2
разделено: 1
et c.
Я пробовал следующее:
def find_token_frequency(x, y):
with open(x, encoding='utf-8') as fobj_1:
with open(y, 'w', encoding='utf-8') as fobj_2:
fobj_1list = fobj_1.split()
unique_string = []
for i in fobj_1list:
if i not in unique_string:
unique_string.append(i)
for i in range(0, len(unique_string)):
fobj_2.write("{}: {}".format(unique_string[i], fobj_1list.count(unique_string[i])))
Я не уверен, что мне вообще нужно использовать .split()
, но я не знаю, что еще делать, и он все равно не работает, так как он говорит мне, что я не могу разделить этот объект.
Мне сказали :
Traceback (most recent call last):
[...]
fobj_1list = fobj_1.split()
AttributeError: '_io.TextIOWrapper' object has no attribute 'split'
Когда я удаляю .split (), отображается ошибка:
fobj_2.write("{}: {}".format(unique_string[i], fobj_1list.count(unique_string[i])))
AttributeError: '_io.TextIOWrapper' object has no attribute 'count'