Поиск:

Ответ в темуСоздание новой темы Создание опроса
> разбор текста на слова, по частоте использования 
:(
    Опции темы
mrgloom
Дата 3.5.2012, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



захотел написать простенькую программу, которая берет все текстовые файлы из папки и выводит слова по частоте использования, допустим тоже в файл+ еще можно задавать файл со словами которые необходимо исключить(предлоги и т.д.)
проблема в том, что дело осложняется, если мы хотим различать окончания\падежи и т.д., т.е. некий уже более сложный разбор.
возможно такая программа уже существует на каком нибудь скриптовом языке?
PM MAIL   Вверх
Akina
Дата 3.5.2012, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



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


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
mrgloom
Дата 3.5.2012, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



Цитата

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

а если в такой простой постановке?
PM MAIL   Вверх
Akina
Дата 3.5.2012, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



А тогда в чём проблема? Любая СУБД (хоть Аксессовская БД через Jet). Читаем файлы, рубим на слова, заливаем в БД, подсчитывая количество. Отдельно заливаем таблицу стоп-слов. После чего одним запросом получаем нужные данные.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Silent
Дата 4.5.2012, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 252
Регистрация: 3.10.2006

Репутация: 1
Всего: 9



Берем MapReduce, получаем статистику, а дальше делаем все что угодно - фильтруем, сортируем, подключаем морфологическую обработку и т.п.
PM MAIL   Вверх
shara
Дата 16.5.2012, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 29.6.2004
Где: печенье?

Репутация: нет
Всего: 2



mrgloom, когда-то ооооочень давно сталкивался именно с этой проблемой. решил ее банально - не учитывать последние 1-3 буквы слова (в зависимости от его длинны). т.е. отбросить окончание 
конечно не торт, но 80% попаданий имелося. 

т.е. 
стол[]
стол[а]
стол[у]

зелен[ый]
зелен[ее]
зеленень[кий]  <- фейл 


а парить себе голову синмтиксическим\морфологическим анализом слов\предложений -   smile   smile  увольте, программист != лингвист 

З.Ы. 
дешево и сердито

З.З.Ы.
для сбора статистики сойдеть  smile 


--------------------
   с точки зрения аэродинамики шмель не может летать  
PM MAIL   Вверх
Polesinskij
Дата 31.10.2013, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 31.10.2013

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
baldina
Дата 1.11.2013, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 4
Всего: 101



Цитата(Akina @  3.5.2012,  12:42 Найти цитируемый пост)
без анализа всего предложения нельзя дазе определить часть речи, не говоря уж о базовой словоформе.

morpher об этом не знает и правильно склоняет по падежам отдельные словосочетания и просто слова. морфологический анализ ему удается даже для не существующих слов, например "мамалыга". естественно, о глаголах речи не идет.
PM MAIL   Вверх
mrgloom
Дата 8.11.2013, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



а кто еще может что сказать о определение похожести текстов?
вроде это называется Semantic similarity http://en.wikipedia.org/wiki/Semantic_similarity
есть например http://radimrehurek.com/gensim/

но на первый взгляд там смотрится как раз вхождение отдельных слов, т.е. опять упираемся в ту же проблему.
PM MAIL   Вверх
Akina
Дата 8.11.2013, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



baldina
Косил косой косой Косой косой косой траву.

Боюсь, твой морфер на такой фразе повесится... это в качестве демонстрации...



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
baldina
Дата 8.11.2013, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 4
Всего: 101



Цитата(baldina @  1.11.2013,  09:55 Найти цитируемый пост)
 о глаголах речи не идет

а "косая коса" отлично склоняется

Добавлено через 7 минут и 15 секунд
у ТС правда задача наоборот, не склонять, а выделять корни
можно посмотреть в сторону http://aot.ru/cgi-bin/search и http://snowball.tartarus.org/algorithms/russian/stemmer.html
PM MAIL   Вверх
mrgloom
Дата 8.11.2013, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 829
Регистрация: 8.6.2011

Репутация: нет
Всего: нет



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

Потом еще захотелось узнать степень похожести одного автора или текста на другой.
Вроде есть метод основанный на том, что мы берем всю кучу текста и выделяем все возможные слова, получается очень длинный вектор слов, потом для каждого рассказа или например странички, находим вхождения этих слов,т.е. по сути у нас потом получается разреженная матрица из 0 и 1(или в ячейке частота вхождения слова). вроде бы это и есть http://en.wikipedia.org/wiki/Latent_semantic_analysis


я так и не понял для выделения слов с разными окончаниями которые разные у разных родов и зависят от кол-ва(например малиновая-малиновый-малиновые) и падежей(например фонарь-фонарём-фонарю) в одно слово нужен какой то словарь или всё же есть какой то алгоритм?
PM MAIL   Вверх
Akina
Дата 8.11.2013, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Я не вижу особой разницы между описываемым инструментом и "детекторами плагиата". Да, немного иной подход, чутка более статистический, а суть-то та же.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
mrgloom
Дата 8.11.2013, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
Pavia
Дата 8.11.2013, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 6.12.2008

Репутация: 11
Всего: 12



mrgloom, 
Используй FreeLing. Думаю если скрестить с отечественными разработками неплохая программа получиться.
А поповоду частотного анализа огорчу порой авторы используют синонимы и за весь текст слова практически не повторяются.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0546 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.