НЛП: любые легкие и хорошие методы для поиска семантического сходства между словами?
Я не знаю, покрывает ли StackOverflow НЛП, так что я сделаю это.
Мне интересно найти смысловую взаимосвязь двух слов из определенного домена, то есть "качество изображения" и "шум". Я делаю некоторые исследования, чтобы определить, являются ли отзывы камер положительными или отрицательными для конкретного атрибута камеры. (например, качество изображения в каждом из обзоров).
Однако не все используют ту же формулировку "качество изображения" в сообщениях, поэтому я хочу посмотреть, есть ли способ для меня построить что-то вроде этого:
"качество изображения" , которое включает ( "шум", "цвет", "резкость" и т.д. и т.д.),
поэтому я могу обернуть все в одном большом зонтике.
Я делаю это для другого языка, поэтому Wordnet не обязательно помогает. И нет, я не работаю для Google или Microsoft, поэтому у меня нет данных от людей, которые нажимают поведение в качестве входных данных.
Однако у меня есть много текстовых, позиционных, сегментированных и т.д.
Ответы
Ответ 1
Посмотрите расстояние сходства google - http://arxiv.org/abs/cs.CL/0412098
например. если множество веб-страниц включают их обоих, они, вероятно, связаны между собой.
демо-программа http://mechanicalcinderella.com
Кроме этого, вы можете попытаться перевести проект как wordnet ((может помочь перевод google translate) или начать совместную онтологию.
Ответ 2
Ваш комментарий:
Также см. следующие вопросы: поиск связанных слов, семантическое сходство двух фраз.
Ответ 3
Чтобы найти семантическое сходство между словами, модель пространства слов должна сделать трюк. Такая модель может быть реализована очень легко и достаточно эффективно. Скорее всего, вам захочется реализовать какое-то уменьшение размерности. Самый простой, о котором я могу думать, - Случайная индексация, которая широко используется в НЛП.
Когда у вас есть модель пространства слов, вы можете рассчитать расстояния (например, косинусное расстояние) между словами. В такой модели вы должны получить результаты, о которых вы говорили ранее (расстояние между "фокусом" и "деталями" должно быть выше, чем "вес камеры" против "вспышки" ).
Надеюсь, это поможет!
Ответ 4
Взгляните на скрытое семантическое индексирование http://en.wikipedia.org/wiki/Latent_semantic_indexing, в котором конкретно рассматривается ваша проблема. Однако вам нужно каким-то образом сопоставить эти мета-концепции с положительными или отрицательными чувствами. Анализ настроений http://en.wikipedia.org/wiki/Sentiment_analysis должен помочь вам.
Ответ 5
Я видел word2vec на HackerNews пару недель назад, выглядит довольно близко к тому, что вы хотите.
Ответ 6
Word-Space - определенно способ пойти здесь. Если LSA замедляется для вашего приложения и если семантика в случайном индексировании слишком мелкая, вы должны рассмотреть api.cortical.io.
Этот REST API может дать вам семантическое представление отпечатка пальца любого слова. Этот семантический отпечаток содержит все различные контексты, к которым относятся слова. Вы можете рассортировать любое слово с одним вызовом, как "орган" возвращается (мышца, фортепиано, церковь, членство...)
И для каждого контекста вы можете получить контекстуальные термины: "фортепиано" даст (орган, кларнет, скрипка, флейта, виолончель, композиции, клавесин, оркестровые)
Что касается вашего последнего аспекта, эти семантические отпечатки пальцев полностью независимы от языка. В настоящее время cortical.io API охватывает: английский, испанский, французский, немецкий, датский, арабский, русский, китайский. Дополнительные языки публикуются до конца 2014 года.
Ответ 7
Возможно, вам стоит взглянуть на книгу Анализ интеллектуальных оценок и настроений.
Если вас интересует только сходство слов и фраз, этот обзорный документ может помочь вам: От частоты к значению: векторные космические модели семантики