Поиск индекса различных слов в списке предложений - PullRequest
0 голосов
/ 25 мая 2020

Эффективный алгоритм, который просматривает 2 предложения или более и возвращает другое слово (слова) и его индекс.

Например:

предложение_a = 'The кошка взяла циновку. '

предложение_b =' крыса взяла циновку.

предложение_ c = ' кошка и крыса взяли циновку.

Здесь я хочу выделить выделенный жирным шрифтом текст для вывода.

output = [cat, rat, cat and rat]

Я исследовал, но не нашел ничего полезного. Я попытался создать такой, в котором сравниваются слова по каждому индексу, но когда есть дополнительное слово, logi c становится сложнее моделировать.

Буду признателен за любые ресурсы. Спасибо!

Ответы [ 2 ]

0 голосов
/ 25 мая 2020

Вы можете создать словарь всех слов, используемых в предложениях, и вычислить обратную частоту этих терминов в документе. Слова, встречающиеся в каждом предложении, будут иметь idf 0, а разные слова будут иметь более высокий idf.
Вы можете сохранить отдельную карту слова и индекса предложения на тот случай, если требуется точный порядок разных слов в конечном массиве.

0 голосов
/ 25 мая 2020

Сначала я могу сказать вам, что вашему алгоритму не понадобится модель машинного обучения, это можно сделать классическим способом

У меня есть предложение для вас, во-первых, вы создадите массив для каждого предложения он будет хранить каждое его слово , например:

sentence_a = 'The cat took the mat.'
sentence_b = 'The rat took the mat.'
sentence_c = 'The cat and rat took the mat.'
list_a = list()
list_b = list()
list_c = list()
# you will parse each sentence and store the words into the lists
# list_a = [ 'The','cat','took' ... etc ]
# list_b = [ 'The','rat','took' ... etc ]
# ...

Затем, вы сравните каждый из списков с первым списком , и каждое отдельное предложение будет сохранено в третьем списке, например:

list_differences = list() # will store differences
# comparing sentence a and b
for s1,s2 in zip(list_a,list_b):
    if ( s1 != s2 ) :
       list_differences.append( s1 )
       list_differences.append( s2 )

# list_differences = [ 'cat','rat' ]
...