![]() |
|
|
![]()
|
|
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
захотел написать простенькую программу, которая берет все текстовые файлы из папки и выводит слова по частоте использования, допустим тоже в файл+ еще можно задавать файл со словами которые необходимо исключить(предлоги и т.д.)
проблема в том, что дело осложняется, если мы хотим различать окончания\падежи и т.д., т.е. некий уже более сложный разбор. возможно такая программа уже существует на каком нибудь скриптовом языке? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Морфологический анализ вряд ли кому пришло в голову реализовывать на скриптовых языках... к тому же без анализа всего предложения нельзя дазе определить часть речи, не говоря уж о базовой словоформе...
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
а если в такой простой постановке? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
А тогда в чём проблема? Любая СУБД (хоть Аксессовская БД через Jet). Читаем файлы, рубим на слова, заливаем в БД, подсчитывая количество. Отдельно заливаем таблицу стоп-слов. После чего одним запросом получаем нужные данные.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Silent |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 252 Регистрация: 3.10.2006 Репутация: 1 Всего: 9 |
Берем MapReduce, получаем статистику, а дальше делаем все что угодно - фильтруем, сортируем, подключаем морфологическую обработку и т.п.
|
|||
|
||||
| shara |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 29.6.2004 Где: печенье? Репутация: нет Всего: 2 |
mrgloom, когда-то ооооочень давно сталкивался именно с этой проблемой. решил ее банально - не учитывать последние 1-3 буквы слова (в зависимости от его длинны). т.е. отбросить окончание
конечно не торт, но 80% попаданий имелося. т.е. стол[] стол[а] стол[у] зелен[ый] зелен[ее] зеленень[кий] <- фейл а парить себе голову синмтиксическим\морфологическим анализом слов\предложений - З.Ы. дешево и сердито З.З.Ы. для сбора статистики сойдеть -------------------- с точки зрения аэродинамики шмель не может летать |
|||
|
||||
| Polesinskij |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 31.10.2013 Репутация: нет Всего: нет |
Модератор: Сообщение скрыто. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 4 Всего: 101 |
morpher об этом не знает и правильно склоняет по падежам отдельные словосочетания и просто слова. морфологический анализ ему удается даже для не существующих слов, например "мамалыга". естественно, о глаголах речи не идет. |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
а кто еще может что сказать о определение похожести текстов?
вроде это называется Semantic similarity http://en.wikipedia.org/wiki/Semantic_similarity есть например http://radimrehurek.com/gensim/ но на первый взгляд там смотрится как раз вхождение отдельных слов, т.е. опять упираемся в ту же проблему. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
baldina
Косил косой косой Косой косой косой траву. Боюсь, твой морфер на такой фразе повесится... это в качестве демонстрации... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 4 Всего: 101 |
а "косая коса" отлично склоняется Добавлено через 7 минут и 15 секунд у ТС правда задача наоборот, не склонять, а выделять корни можно посмотреть в сторону http://aot.ru/cgi-bin/search и http://snowball.tartarus.org/algorithms/russian/stemmer.html |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
Задача в начале была такая, что допустим есть писатель, у него есть тексты(определенной тематики и стилистики) хотелось выделить топ-100 употребляемых слов по разным писателям.
Потом еще захотелось узнать степень похожести одного автора или текста на другой. Вроде есть метод основанный на том, что мы берем всю кучу текста и выделяем все возможные слова, получается очень длинный вектор слов, потом для каждого рассказа или например странички, находим вхождения этих слов,т.е. по сути у нас потом получается разреженная матрица из 0 и 1(или в ячейке частота вхождения слова). вроде бы это и есть http://en.wikipedia.org/wiki/Latent_semantic_analysis я так и не понял для выделения слов с разными окончаниями которые разные у разных родов и зависят от кол-ва(например малиновая-малиновый-малиновые) и падежей(например фонарь-фонарём-фонарю) в одно слово нужен какой то словарь или всё же есть какой то алгоритм? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Я не вижу особой разницы между описываемым инструментом и "детекторами плагиата". Да, немного иной подход, чутка более статистический, а суть-то та же.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| mrgloom |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
это вы к чему? как работает "детекторами плагиата"? кстати то что мне нужно похоже называется лемматизация http://ru.wikipedia.org/wiki/%D0%9B%D0%B5%...%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 Это сообщение отредактировал(а) mrgloom - 11.11.2013, 17:32 |
|||
|
||||
| Pavia |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
mrgloom,
Используй FreeLing. Думаю если скрестить с отечественными разработками неплохая программа получиться. А поповоду частотного анализа огорчу порой авторы используют синонимы и за весь текст слова практически не повторяются. |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |