Извлечение терминов со списком доступных терминов

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

Задача кажется тривиальной: для каждого термина подсчитать количество упоминаний в тексте, отфильтровать топовые термины. Но вот у меня есть список из нескольких десятков тысяч терминов, эта задача выглядит невыполнимой. Вы знаете сервис или алгоритм, который это делает?

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

Спасибо.

Изменить: пример

Hôm thứ hai 31/1/2011, ericsson cho biết đ trình diễn mạng hspa (высокоскоростный доступ к пакетам) với tốc ộ tải xuống lên ến 168 mbit/giây, tốc ộ tải lên 24 mbit/giây. Buổi trình diễn sử dụng một nguyên mẫu thiết bịngười tiêu dùng và thiết bịng thương mại, với sự tham dự của singtel theo lời mời của ericsson.

Ể ạt tốc ộ 168 mbit/giây, ericsson đ sử dụng một số thủt vô vô uyến, bao gồm công nghệ anten mimo (множественная входная поверхность). MIMO sử dụng nhiều anten tại trạm gốc và trên thiet bị để tăng tốc độ.

Тео Эрикссон, cũng sẽ có một buổi trình diễn như vậy được tiến hành tại triển lãm Mobile World Congress sắp tới ở Барселона (Тай Бан Нха)

И список предложений может быть: Ericsson, trình diễn, HSPA, anten (среди прочих)


person jcisio    schedule 01.02.2011    source источник
comment
Можете ли вы привести пример, пожалуйста?   -  person Nikita Rybak    schedule 01.02.2011
comment
Итак, вы, по сути, хотите получить наиболее часто встречающиеся слова из текста. Это правильно?   -  person Nikita Rybak    schedule 01.02.2011
comment
Вы сказали, что большинство слов составные. Сначала точно определите, что вы подразумеваете под термином.   -  person ThomasMcLeod    schedule 01.02.2011
comment
@nikita: Да, самые часто встречающиеся слова, представленные в предустановленном списке. @thomas: Термин — это слово или фраза (сочетание слов, в данном случае это тоже слово). Проблема со сложными словами заключается в том, что все trình, trình diễn и chương trình являются словами.   -  person jcisio    schedule 01.02.2011
comment
Я видел ответ о попытке, почему он был удален?   -  person jcisio    schedule 01.02.2011


Ответы (1)


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

Во втором раунде вы извлекаете все пары слов (Hôm thứ, thứ Hai, Ericsson cho, cho biết) и т. д. и ищете эти термины в своем списке.

и т.п.

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

Или я думаю, что это слишком просто?

person toochin    schedule 02.02.2011
comment
Спасибо, это помогает. Я думаю, что сделаю это в два этапа: первый с простыми словами (где слово='w1'), а второй с префиксом составного слова (где слово='w1 w2' или слово='w1 w2 %'). Я не делаю этого на первом шаге (word='w1%'), потому что результирующий набор будет большим и будет содержать еще много бесполезных слов). - person jcisio; 02.02.2011