| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > разбор текста на слова |
| Автор: mrgloom 3.5.2012, 12:40 |
| захотел написать простенькую программу, которая берет все текстовые файлы из папки и выводит слова по частоте использования, допустим тоже в файл+ еще можно задавать файл со словами которые необходимо исключить(предлоги и т.д.) проблема в том, что дело осложняется, если мы хотим различать окончания\падежи и т.д., т.е. некий уже более сложный разбор. возможно такая программа уже существует на каком нибудь скриптовом языке? |
| Автор: Akina 3.5.2012, 12:42 |
| Морфологический анализ вряд ли кому пришло в голову реализовывать на скриптовых языках... к тому же без анализа всего предложения нельзя дазе определить часть речи, не говоря уж о базовой словоформе... |
| Автор: mrgloom 3.5.2012, 16:34 | ||
а если в такой простой постановке? |
| Автор: Akina 3.5.2012, 17:01 |
| А тогда в чём проблема? Любая СУБД (хоть Аксессовская БД через Jet). Читаем файлы, рубим на слова, заливаем в БД, подсчитывая количество. Отдельно заливаем таблицу стоп-слов. После чего одним запросом получаем нужные данные. |
| Автор: Silent 4.5.2012, 13:50 |
| Берем http://ru.wikipedia.org/wiki/MapReduce, получаем статистику, а дальше делаем все что угодно - фильтруем, сортируем, подключаем морфологическую обработку и т.п. |
| Автор: shara 16.5.2012, 12:50 |
| mrgloom, когда-то ооооочень давно сталкивался именно с этой проблемой. решил ее банально - не учитывать последние 1-3 буквы слова (в зависимости от его длинны). т.е. отбросить окончание конечно не торт, но 80% попаданий имелося. т.е. стол[] стол[а] стол[у] зелен[ый] зелен[ее] зеленень[кий] <- фейл а парить себе голову синмтиксическим\морфологическим анализом слов\предложений - З.Ы. дешево и сердито З.З.Ы. для сбора статистики сойдеть |
| Автор: Polesinskij 31.10.2013, 20:57 |
Модератор: Сообщение скрыто. |
| Автор: mrgloom 8.11.2013, 10:52 |
| а кто еще может что сказать о определение похожести текстов? вроде это называется Semantic similarity http://en.wikipedia.org/wiki/Semantic_similarity есть например http://radimrehurek.com/gensim/ но на первый взгляд там смотрится как раз вхождение отдельных слов, т.е. опять упираемся в ту же проблему. |
| Автор: Akina 8.11.2013, 14:02 |
| baldina Косил косой косой Косой косой косой траву. Боюсь, твой морфер на такой фразе повесится... это в качестве демонстрации... |
| Автор: baldina 8.11.2013, 14:11 |
а "косая коса" отлично склоняется Добавлено через 7 минут и 15 секунд у ТС правда задача наоборот, не склонять, а выделять корни можно посмотреть в сторону http://aot.ru/cgi-bin/search и http://snowball.tartarus.org/algorithms/russian/stemmer.html |
| Автор: mrgloom 8.11.2013, 15:29 |
| Задача в начале была такая, что допустим есть писатель, у него есть тексты(определенной тематики и стилистики) хотелось выделить топ-100 употребляемых слов по разным писателям. Потом еще захотелось узнать степень похожести одного автора или текста на другой. Вроде есть метод основанный на том, что мы берем всю кучу текста и выделяем все возможные слова, получается очень длинный вектор слов, потом для каждого рассказа или например странички, находим вхождения этих слов,т.е. по сути у нас потом получается разреженная матрица из 0 и 1(или в ячейке частота вхождения слова). вроде бы это и есть http://en.wikipedia.org/wiki/Latent_semantic_analysis я так и не понял для выделения слов с разными окончаниями которые разные у разных родов и зависят от кол-ва(например малиновая-малиновый-малиновые) и падежей(например фонарь-фонарём-фонарю) в одно слово нужен какой то словарь или всё же есть какой то алгоритм? |
| Автор: Akina 8.11.2013, 15:46 |
| Я не вижу особой разницы между описываемым инструментом и "детекторами плагиата". Да, немного иной подход, чутка более статистический, а суть-то та же. |
| Автор: mrgloom 8.11.2013, 17:08 | ||
это вы к чему? как работает "детекторами плагиата"? кстати то что мне нужно похоже называется лемматизация http://ru.wikipedia.org/wiki/%D0%9B%D0%B5%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F http://www.solarix.ru/for_developers/api/lemmatization.shtml кошки бегают за толстыми мышками -> кошка бегать за толстый мышка, т.е. в такой форме уже можно пихать в частотный анализатор слов. вот еще http://habrahabr.ru/post/49421/ http://www.aot.ru/onlinedemo.html |
| Автор: Pavia 8.11.2013, 17:34 |
| mrgloom, Используй FreeLing. Думаю если скрестить с отечественными разработками неплохая программа получиться. А поповоду частотного анализа огорчу порой авторы используют синонимы и за весь текст слова практически не повторяются. |
| Автор: Akina 8.11.2013, 22:37 |
| mrgloom, а Вы не пробовали спросить у гугла, что такое "детектор плагиата", не? |