Нечеткое соответствие названий продукта

Ваши данные журнала представлены в формате JSON, поэтому вы можете просто обработать извлеченные данные как таковые.

Get-Content -Path C:\Execution.log | ForEach-Object {
    $time, $type, $json = 

Ваши данные журнала представлены в формате JSON, поэтому вы можете просто обработать извлеченные данные как таковые.

[110] -split " ", 3 $data = ConvertFrom-Json $json if ($data.message -match 'execution (started|ended)') { # do stuff } }
20
задан pnuts 16 November 2015 в 22:14
поделиться

8 ответов

Я думаю, что это сведет к различению ключевых слов такой как Lenovo от дипольной помехи такой как Новый .

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

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

Тогда у Вас будет список ключевых слов, которые могут использоваться, чтобы помочь определить общие черты. Вы связали бы "необработанное" имя с его ключевыми словами и использовали бы те ключевые слова при сравнении двух или больше необработанных названий общих черт (буквально, процент общих ключевых слов).

Не идеальное решение каким-либо фрагментом, но я не думаю, что Вы ожидаете тот?

5
ответ дан 30 November 2019 в 01:24
поделиться

Ключевое понимание здесь - то, что у Вас действительно есть надлежащая метрика расстояния. Это - на самом деле не Ваша проблема вообще. Ваша проблема находится в классификации.

Позволяют мне дать Вам пример. Скажите, что у Вас есть 20 записей для Нечто X1 и 20 для Нечто Y1. Можно безопасно предположить, что они - две группы. С другой стороны, если у Вас есть 39 записей для Панели X1 и 1 для Панели Y1, необходимо рассматривать их как единственная группа.

Теперь, расстояние X1 <-> Y1 является тем же в обоих примерах, итак, почему там различие в классификации? Это вызвано тем, что Панель, Y1 является изолированной частью, тогда как Нечто Y1 не.

забавная часть - то, что Вы не должны на самом деле делать большой работы для определения этих групп впереди. Вы просто делаете рекурсивную классификацию. Вы начинаете с узлом на группу и затем добавляете суперузел для двух самых близких узлов. В суперузле сохраните лучшее предположение, размер его поддерева и вариации в нем. Поскольку многие Ваши строки будут идентичны, Вы скоро получите большие поддеревья с идентичными записями. Рекурсия заканчивается суперузлом, содержащим в корне дерева.

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

4
ответ дан 30 November 2019 в 01:24
поделиться

ответ edg находится в правильном направлении, я думаю - необходимо отличить ключевые слова от пуха.

вопросы Контекста. Для взятия примера Core 2 Duo является пухом при рассмотрении двух экземпляров T400, но не при взгляде на пакет OEM ЦП.

, Если можно отметить в базе данных, какие части канонической формы названия продукта более важны и, должно казаться, в одной форме или другом определяют продукт, необходимо сделать это. Возможно, с помощью своего рода семантической разметки? Можно ли позволить себе сделать, чтобы человек повысил базу данных?

можно попытаться определить классы эквивалентности для вещей как "T-400", "T400", "T 400" и т.д., Возможно, ряд правил, которые говорят "числа, связывает более сильно, чем буквы, присоединенные к тем числам".

Разламывание на случаи на основе производителя, номера модели, и т.д. могли бы быть хорошим подходом. Я рекомендовал бы посмотреть на методы для определения термина, чтобы попытаться выполнить это: http://www.worldcat.org/isbn/9780262100854

Разработка всего в гибкой платформе это - главным образом управляемое правило, где правила могут быть изменены на основе Ваших потребностей и появляющихся плохих шаблонов (чтение: вещи, которые повреждают Ваш алгоритм) была бы хорошая идея, также. Таким образом, Вы были бы в состоянии улучшить производительность системы на основе данных реального мира.

3
ответ дан 30 November 2019 в 01:24
поделиться

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

2
ответ дан 30 November 2019 в 01:24
поделиться

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

0
ответ дан 30 November 2019 в 01:24
поделиться

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

"Canon PowerShot A20", например, маркирует в:

  • Canon
  • Powershot
  • A20

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

Другая стратегия состояла бы в том, чтобы снабдить "ключевые слова" каждым объектом, такие как "камера", "канон", "цифровой фотоаппарат", и ищущий на основе объектов, которые имеют соответствие ключевым словам. Кроме того, при хранении других атрибутов, таких как Производитель, Бренд, и т.д., Вы могли бы искать на каждом из них.

0
ответ дан 30 November 2019 в 01:24
поделиться

Проверка правописания алгоритмы приходят на ум.

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

остатки, оставленные в моей памяти:

  1. Полоса все общие слова (a, новый). То, что "распространено", зависит от контекста.
  2. Берут первую букву каждого слова и его длины и делают это ключом слова.
  3. то, Когда подозрительное слово подходит, ищет слова с тем же или подобным ключом слова.

Это могло бы не , решают Ваши проблемы непосредственно..., но Вы говорите поиск идей, правильно?

:-)

0
ответ дан 30 November 2019 в 01:24
поделиться

Это - точно проблема, я продолжаю работать в свое свободное время. То, что я придумал: на основе ключевых слов сужают объем поиска:

в этом случае у Вас могла быть некоторая иерархия:

тип-> компания-> модель

так, чтобы Вы соответствовали бы "Цифровому фотоаппарату" для типа

"Canon" для компании и там Вас оставят с намного более узким объемом искать.

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

0
ответ дан 30 November 2019 в 01:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: