Как сгенерировать оценку сходства для двух документов

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

Будет ли хорошим подходом обучение модели Doc2vec на «world_1» и тестирование двух других документов с этой моделью?

thermo = «Термодинамика в основном основана на наборе четырех законов, которые универсально применимы к системам, подпадающим под ограничения, подразумеваемые каждым из них. В различных теоретических описаниях термодинамики эти законы могут быть выражены в, казалось бы, различных формах, но наиболее Известные формулировки следующие: Нулевой закон термодинамики: если каждая из двух систем находится в тепловом равновесии с третьей, они также находятся в тепловом равновесии друг с другом. Это утверждение подразумевает, что тепловое равновесие является отношением эквивалентности на множестве термодинамических систем при рассмотрение."

world_1 = "Первая мировая война (часто сокращенно WWI или WW1), также известная как Первая мировая война или Великая война, была глобальной войной, зародившейся в Европе, которая длилась с 28 июля 1914 года по 11 ноября 1918 года. Одновременно описывается как война чтобы положить конец всем войнам, [7] это привело к мобилизации более 70 миллионов военнослужащих, в том числе 60 миллионов европейцев, что сделало ее одной из крупнейших войн в истории. [8] [9] Это также один из самых смертоносных конфликтов. в истории,[10] примерно девять миллионов комбатантов и семь миллионов гражданских лиц погибли в результате войны, в то время как последовавшие за ней геноциды и пандемия гриппа 1918 года привели к гибели еще от 50 до 100 миллионов человек во всем мире.28 июня 1914 года Гаврило Принцип, боснийский серб, югославский националист, убил австро-венгерского наследника эрцгерцога Франца Фердинанда в Сараево, что привело к июльскому кризису».

world_2 = "Вторая мировая война (часто сокращенно WWII или WW2), также известная как Вторая мировая война, была глобальной войной, которая длилась с 1939 по 1945 год. Подавляющее большинство стран мира, включая все великие державы, в конечном итоге образовали двух противоборствующих военных союзов: союзников и стран оси. Возникло состояние тотальной войны, в которой непосредственно участвовало более 100 миллионов человек из более чем 30 стран. Основные участники бросили все свои экономические, промышленные и научные возможности на военные действия, размывая различие между гражданскими и военными ресурсами. Вторая мировая война была самым смертоносным конфликтом в истории человечества, в котором погибло от 50 до 85 миллионов человек, большинство из которых были гражданскими лицами в Советском Союзе и Китае ».


person Rob Sirty    schedule 14.06.2019    source источник


Ответы (1)


Да, но вы хотите обучить модель Doc2Vec на большом наборе документов, содержащем полный набор тем документов, которые вы хотите представить, например, на всех статьях Википедии, а не только на одном документе.

Затем, если документы, которые вы хотите сравнить, были названы в обучающем наборе, вы можете найти их векторы в модели. Но если это новые документы, использующие похожий язык, вы можете использовать метод Doc2Vec.infer_vector() для их словесных токенов (которые должны быть предварительно обработаны/токенизированы так же, как и обучающие данные).

Кажется, в вашем вопросе вы выбрали два документа, которые, как известно, несколько похожи — возможно, потому, что они имеют одну и ту же категорию, назначенную человеком, — а затем наугад третий, в надежде, что модель правильно определит первые два. более похожи друг на друга, чем 3-й.

Делать это на большом наборе троек документов — хороший процесс оценки модели! Фактически, в последующем документе к исходной работе «Вектор абзаца» (Doc2Vec) это то, что используется для оценки и оптимизации параметров алгоритма по сравнению с корпусами документов Википедии и Arxiv. Видеть:

Встраивание документа с векторами абзацев

person gojomo    schedule 15.06.2019