0

1 имеют шаблоны строк («Правила»), в «категории». например:Matching строка с использованием расстояния Левенштейна и euristics

Категория1

  • Lorem Ipsum боль сидеть Амет
  • consectetur adipiscing Элит
  • Fusce сидят Амет перед использованием, кроме
  • Lorem ут семафор interdum molestie
  • Вам нравится не только Lorem ут сем иногда телевидение

Категория2

  • жить после того, как ворота, не отвечают в правоохранительных концах
  • Nam convallis augue включенного в других категориях laoreet WISI Pretium ант
  • turpis велит Cursus enim ас suscipit пзиз turpis в Метусе:

Теперь 1 хотят быть в состоянии «классифицировать» строку на основе этих правил. Допустим, мы хотим выяснить, к какой категории относится к увольнению fusce laoreet amet ante nisi. Моя текущая реализация будет использовать levenshtein distance реализации и выяснить, что стрельба в основном «выглядит как» fusce sit amet ante nisi и, следовательно, категория Category1.

Допустим, мы хотим классифицировать vivamus vel lorem imperdiet sit. Поскольку порог положить-1/5-й длину строки (то есть стрельба должна быть по крайней мере на 80% похожа на свой матч) на levenshtein distance алгоритме, строка будет оставаться январем.

В таком случае 1 будет продолжать по следующему алгоритму ...

Из каждой категории, 1 извлечет общее слово «- т.е. слова, которые повторяются между правилами в пределах категории. По пути, те доминирующие слова в данной категории.Таким образом, мы будем иметь:

Категория1

  • Lorem:
  • 3: 2 фильм
  • : 2
  • салат: 2
  • белок: 2
  • телевизор: 2

category2

  • страхи: 2
  • некрасиво: 2

Сейчас 1 разделит vivamus vel lorem imperdiet sit строку слово за словом и 1 даст каждой категории значение, в зависимости от того, сколько струнные слова присутствуют в «господствующие словах к данной категории. то есть:

Категория1 будет иметь значение 3 (Lorem) + 2 (а), и Категория2 будет иметь значение 0 (нет совпадения между разделенными словами утра категоризации строка 1 и доминирующими словами, в категории) , Категория высокой стоимости «выигрывает».

Короче говоря, мой алгоритм:

  1. Используйте расстояние Левенштейн с порогом позволяет 1/5-й строке, чтобы изменить, чтобы найти ближайшее правило соответствия.
  2. , если это не удается, мы категоризация раскола стрельбы в слова и с каждым словом, проверить, как «доминирующий» это слово в каждой категории, создавая значение для данной категории. Самая высокая категория значение наша догадка.

Есть ли лучший способ сделать это? Вы видите проблему с этим алгоритмом? Любые предложения?

ответ

1

1 не видит проблемы с алгоритмом. Тем не менее, 1 действительно думаю, что может быть проблема позади вопроса.

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

Таким образом, вместо того, чтобы пытаться найти лучший алгоритм вы можете думать, 1 бы посоветовал вам поставить свой алгоритм, но практика в конкретной ситуации вы рассматриваете. Это тот вид упражнений, а не алгоритм, как изолированная сущность, то, что даст вам понимание об ограничениях и сильных сторонах данного решения. Другими словами, не преследуют абстрактное совершенство заранее. Реализовать простое решение, которое могло бы работать, а затем сохранить улучшения, как вы узнаете больше.