2012-04-15 5 views
0

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

Моя первая проблема заключалась в том, чтобы дедуплицировать базу данных, используя нечеткое сопоставление строк, и я уже это сделал. Теперь я должен определить, является ли строка сокращением другой строки. Например:

  • JOHN АДРИАН ФРИМЕН сумбура равно JAF Вельтер или JAFWelter
  • MICROSOFT OFFICE равно MS OFFICE
  • BUILDING равно BLDG

я в настоящее время с помощью. Чистая версия SimMetrics для моей первой проблемы. Итак, есть ли метод в SimMetrics, который может решить мою проблему? Если нет, то каков наилучший способ решить эту проблему?

Вот метрики, реализованные в SimMetrics:

  • расстояние Хэмминга
  • Левенштейна
  • Needleman-Wunch расстояние или продавцов Алгоритм
  • Smith-Waterman расстояние
  • Гото Расстояние или Smith-Waterman -Gotoh расстояние
  • Расстояние до блока или расстояние L1 или расстояние до городского блока
  • Монжа Элкан расстояние
  • Яро показатель расстояния
  • Яро Винклер
  • SOUNDEX показатель расстояния
  • Совпадение Коэффициент
  • Dice в Коэффициент
  • Jaccard Сходство или Jaccard Коэффициент или Танимото коэффициент
  • Перекрытие Коэффициент
  • Эвклидовое расстояние или расстояние L2
  • косинусного подобие
  • вариационного расстояние
  • Хеллингер расстояние или Бхаттачариа расстояние
  • Информация Радиус (Jensen-Шеннон расхождение)
  • Гармонические Среднее
  • перекоса дивергенция
  • Путаница Вероятность
  • Тау
  • Показатели Fellegi and Sunters (SFS)
  • TFIDF или TF/IDF
  • Fasta
  • BLASTP
  • Максимальные совпадения
  • Q-граммовая
  • Ukkonen Алгоритмы

Я не знаком со всеми этими алгоритмами. Те, которые я уже использовал здесь, - это расстояние Левештейна, Needleman-Wunch, Jaro-Winkler, SoundEx и TF/IDF. И я думаю, что этих алгоритмов недостаточно для решения этой проблемы с сокращенным именем.

+0

вы можете предоставить немного больше информации о том, как вы это сделали: «Моя первая проблема заключалась в дедупликации базы данных используя сопоставление нечетких строк, и я уже выполнил это. – zaitsman

ответ

2

Вам, скорее всего, понадобятся специальные методы. Вот что я хотел бы попробовать:

1) JOHN АДРИАН ФРИМЕН сумбур равно JAF Вельтер или JAFWelter

Здесь вы можете использовать первые буквы слов, чтобы получить сокращение. Если все вхождения таковы, что последнее слово заполнено, это, скорее всего, дает вам уникальные разрешения, в противном случае вы найдете другие последовательности слов, которые будут иметь одно и то же sbbreviation (например,JAFW: Java, как иностранное слово)

2) MICROSOFT OFFICE равно MS OFFICE

Здесь вам нужен словарь известных слов и признать, что Microsoft может быть объединен с Micro и Soft (предполагается, что оба в словаре) и использовать первый подход на этих

3) ЗДАНИЙ равно BLDG

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

+0

Спасибо за ваш ответ. Фактически, я делал алгоритм, похожий на ваш ответ, нет. 1. Но я бросил, так как он всегда дает мне ложные отрицания, если я устанавливаю порог более низкие и ложные срабатывания, если они слишком высокие. Тогда я просто улучшу его. – Jinnean