У меня есть файл .txt, содержащий список предложений, и я хочу создать матрицу совместного использования в разреженном формате (формат tdf). Вот необработанные данные:
I want an ape which eats bananas
This is an ape who like bananas
Bananas grow on that tree
That ape lives in a tree
Bananas and the ape are on the tree
The ape lives in a cave
И желаемые результаты должны быть в разреженном формате:
Ape bananas 3
Ape tree 2
Ape cave 1
Bananas tree 2
Etc..
Etc..
Для этого я сгенерировал список из спискаслова в каждом предложении. И список уникальных слов:
#open file
with open("sentences.txt") as f:
rawdata = f.read().splitlines()
#create list of a list with all individual sentences, result is sentence_list
sentence_list = []
for line in rawdata:
sentence = line.split(" ")
sentence_list.append(sentence)
#Create list of all individual words, result is uniqwords
allwords = []
for line in sentence_list:
for item in line:
allwords.append(item)
uniqwords = sorted(set(allwords)) #remove duplicate words and sort
print(uniqwords)
Результаты таковы:
sentence_list = [
['I', 'want', 'an', 'ape', 'which', 'eats', 'bananas'],
['This', 'is', 'an', 'ape', 'who', 'like', 'bananas'],
['Bananas', 'grow', 'on', 'that', 'tree'],
[etc...]]
uniqwords = ['a', 'an', 'and', 'ape', 'are', 'bananas', 'cave', 'etc...']
Теперь я думаю, что я должен создать массив, который содержит три столбца: слово x, слово y иколичество их совпадений в одном предложении. У вас, ребята, есть хорошее решение этой проблемы?