2015-06-12 6 views
1

У меня есть эта проблема совпадения двух строк для «более общих», «менее общих», «того же значения», «противоположного значения» и т. Д.семантические строки соответствия - используя word2vec или s-match?

Строки могут быть из любого домена. Предположим, что строки могут быть из электронных писем людей.

К примеру,

String 1 = "movies" 
String 2 = "Inception" 

Здесь я должен знать, что Inception меньше общего, чем кино (вроде есть-отношения)

String 1 = "Inception" 
String 2 = "Christopher Nolan" 

Здесь я должен знать, что Inception меньше общий, чем Кристофер Нолан

String 1 = "service tax" 
String 2 = "service tax 2015" 

С первого взгляда мне кажется, что S-матч будет делать работа. Но я не уверен, что S-match можно заставить работать с базами знаний, отличными от WordNet или GeoWordNet (как указано на их странице).

Если я использую word2vec или dl4j, я думаю, это может дать мне оценки подобия. Но также поддерживает ли строка строку more general или less general, чем другую?

Но я вижу word2vec может быть основан на обучающий набор или большой корпус, как википедия и т.д.

Может кто-то один пролить свет на пути идти вперед?

ответ

0

Современное использование методов машинного обучения, таких как word2vec и dl4j для слов моделирования, основано на distributional hypothesis. Они обучают модели слов и фраз на основе их контекста. В этих текстовых моделях нет онтологических аспектов. В своем наилучшем обученном случае модель, основанная на этих инструментах, может сказать, могут ли появляться два слова в похожих контекстах. Так работает их сходство.

Mikolov бумага (a, b и c), который наводит на мысль, что эти модели могут научиться «лингвистическая Закономерность» не имеет никакого онтологический анализа теста, он только предполагает, что эти модели способны предсказывать «сходство между членами слово пары ". Такой прогноз не помогает вашей задаче. Эти модели даже неспособны распознать сходство в отличие от родства (например, читайте эту страницу SimLex test set).

Я бы сказал, что вам нужна онтологическая база данных для решения вашей проблемы.Более конкретно о ваших примерах, кажется, для String 1 и String 2 в ваших примерах:

String 1 = "a" 
String 2 = "b" 

Вы пытаетесь проверить entailment отношения в предложениях:

(1) "с является б "

(2)" c is a "

(3) "c относится к a".

Где:

(1) влечет за собой (2)

или

(1) влечет за собой (3)

В вашей два первые примеры, вы, вероятно, можете использовать seman базы знаний для решения проблемы. Но вашему третьему примеру, вероятно, потребуется синтаксический анализ, прежде чем понять разницу между двумя фразами. Например, эти фразы:

"мужчины"

"все люди"

"великаны"

"Люди в черном"

"мужчины в целом"

Для решения вашей проблемы требуется логическое понимание. Тем не менее, вы можете проанализировать это на основе экономики языка, добавляя больше слов к фразе, как правило, делает это менее общим. Более длинные фразы менее общие по сравнению с более короткими фразами. Он не дает вам точного инструмента для решения проблемы, но может помочь проанализировать некоторые фразы без специальных слов, таких как all, general или every.

+0

Спасибо. Это помогло понять лучше. – Thalapathy