Нахождение семантической связности между предложениями в тексте

Мне нужна помощь в написании программы на основе кода из этих ссылок ссылка1 и ссылка2, который автоматически рассчитает семантическое сходство между a. Последовательные предложения и б. Предложения разделяются 1 промежуточной фразой в целом документе (1000 предложений).

Предоставленный код уже токенизирует и может найти семантическое сходство, но я понятия не имею, как написать новый код, который будет вычислять (и отображать) семантическое сходство между последовательными и «промежуточными» предложениями по всему тексту (а, б). не хочется делать одно и то же снова и снова.


person Sigmund Reed    schedule 10.01.2017    source источник
comment
Вы смотрели на word2vec (или это) вообще? Я использовал его реализацию на Python для чего-то подобного в прошлом.   -  person Fruitspunchsamurai    schedule 11.01.2017
comment
Привет, эти статьи в основном представляют собой теорию, которую я понимаю, у меня проблемы с внедрением идей в код и автоматизацией процесса.   -  person Sigmund Reed    schedule 11.01.2017
comment
что ты уже испробовал? Я полагаю, у вас была бы какая-то программа, которая читает файлы построчно и сравнивает их со следующей строкой/соседней фразой?   -  person Fruitspunchsamurai    schedule 11.01.2017
comment
Привет, я нашел эту ссылку, который, я думаю, выполняет задачу для последовательных предложений (пожалуйста, поправьте меня, если я ошибаюсь и неправильно понимаю код). Если нет, как бы вы изменили этот код для непоследовательных фраз?   -  person Sigmund Reed    schedule 11.01.2017
comment
Функция подобия в последней ссылке, которую вы предоставили, позволит вам сравнить семантическое сходство между предложениями, вам потребуется программа подачи, которая перебирает предложения, которые вы хотите сравнить.   -  person Fruitspunchsamurai    schedule 11.01.2017
comment
Я вижу, есть идеи о том, как написать что-то, что может достичь этого, и реализовать это в коде, указанном по ссылке? Прошу прощения за вопросы, я профессор лингвистики и это мой первый опыт знакомства с python. Компом обычно не занимаюсь. науч.   -  person Sigmund Reed    schedule 11.01.2017


Ответы (1)


Следующий код должен делать то, что вы хотите, настройте его в зависимости от того, как вы хотите отформатировать вывод.

with open("sentence_file_name", "r") as sentence_file:
    while x and y:
    x = sentence_file.readline()
    y = sentence_file.readline()
    similarity(x, y, boolean) #boolean set to false or true depending on what you want
    x = y
    y = sentence_file.readline()
person Fruitspunchsamurai    schedule 10.01.2017
comment
Мне ужасно жаль, но где бы вы реализовали это в коде, указанном в ссылке? - person Sigmund Reed; 11.01.2017
comment
Скопируйте/разветвите все из строки 1-245, затем добавьте приведенный выше код ниже. Замените имя_файла_предложения любым относительным путем к файлу предложений. Технически это не самый чистый способ сделать это, но, вероятно, будет самым простым. - person Fruitspunchsamurai; 11.01.2017