Pull to refresh

Comments 43

Интересно, а с помощью Google Fusion Tables можно произвести анализ твоей таблицы.
мда, там ограничение You can use Fusion Tables to import a file of up to 100 MB of these file types…
Я б настоятельно не советовал с такими базами — моя 21G работать через кого-то типа Google Fusion Tables или слабый хостинг. Конфигурация моего сервера думаю не из самых слабых. Я так понял, что когда таблицы переваливают за какой-то порог вопросы быстродействия железа, канала доступа, настроек сервера становятся очень остро. Цена ошибки — сутки, а в моем случае месяцы работы сервера. В частности — php скрипт который собирал статистку был запущен с включенным zend_debuger без оптимизаторов типа xcache и прочих. В итоге, думаю задержки которые при прочих условиях дали бы секунды простоя вылились в часы и сутки добавочного времени. При чем в моем случае я сделал вывод что задержки были еще и из-за IO (медленный винт)
помню как-то одна программа по определению части речи распознала слово «хрюша» как существительное, прилагательное и деепричастие («тихо хрюша колесами, автобус ...»)
Морфологические анализаторы часто возвращают все возможные варианты разбора слова (желательно — в порядке убывания вероятности). В простейшем случае потом берется наиболее вероятный вариант. Если нужна большая точность, то задача выбора правильного варианта разбора (дизамбигуация) решается каким-то кодом уровнем чуть выше, который смотрит уже не только на само слово, но и на его контекст.

Так что наличие варианта разбора «хрюши» как деепричастия — это скорее плюс) Без такого варианта фразу «тихо хрюша колесами, автобус» правильно уже не разобрать.
Все верно. Но на первых парах даже примитивные действия заняли много времени. Что уж говорить о коде, который будет выбирать часть речи, опираясь на контекст. Но для выявления общих закономерностей статистика вполне годится, тем более что еде то на 100 000 повторения структуры предложения почти закончились, а из 90 000 000 это уже результат.
Да, да… Что делая? «Батарея! Батарея тоже деепричастие ;)
И еще «вокзал» (что делал?) мне очень нравится :) Прошу прощения за флуд.
Как-то непонятно, почему самое частое предложение — «С»? Есть какие-нибудь примеры? (Кроме «Оглавление», «Вступление», и «Тоска...»?) Боюсь, там всё-таки проблемы с омонимией.
Ну видимо, таких предложений все-же больше, чем остальных комбинаций. Ведь, чем проще конструкция, тем чаще она будет встречаться.
Объясняется это очень просто. Книг проанализировано примерно 86 556, в которых фразы типа 'умри!' или 'пойдем...' повторялись довольно часто. Название глав, и прочее. Поэтому первые 4 результата вполне очевидны.
Всё равно не очень понятно… Примеры, которые Вы привели — глаголы, а не существительные. Как раз в них поверить просто, но вот предложения из одного существительного, на мой взгляд, редкость. У Вас нет примеров?
«Ночь, улица, фонарь, аптека… „
Кажись, это предложение из 4-х существительных…
Метель. Снег. Мороз. Дом. Окно. Дым. Дверь. Скрип. Шаг. Крик.

Можно целый рассказ написать из одних существительных.
Так себе, если честно. Там, кстати, прилагательные проскакивали и частицы.
посчитайте, каких вариантов больше — глагол+сказуемое или сказуемое+глагол.
э-э… то есть я хотел сказать существительное+глагол. VSO/SVO короче.
По ощущениям — одинаково. И статистика это показывает. Но попытки увидеть такие предложения в книгах к успеху не привели: все двухсловне предложения, которые удалось увидеть — какие-то странные «А ты?», «Очень хорошо», «Давай, заноси» и т.п. Попадаются исключительно в репликах.
я недостаточно четко выразился. :(
строчки
С Г 312017
Г С 288641
я вижу.

Интересуют конечно же предложения с любым количеством слов, для которых можно определить порядок подлежащее-сказуемое.
Но простая статистика тут может ошибаться, потому что надо учитывать глубинный синтаксис. Например, предложения "Петя кушает кашу" и "Кашу кушает Петя" выглядят одинаково для поверхностного анализа — «Сущ. Глагол. Сущ.», но по-разному на уровне синтаксиса: «Подлежащее сказуемое дополнение» или «дополнение сказуемое подлежащее» соответственно.
Русский язык не имеет строгого правила насчет порядка слов, поэтому любопытно было бы оценить статистический разброс на такой большой выборке.
Русский однозначно тяготеет к SVO.
UFO just landed and posted this here
Статистику решил собрать скорее из баловства. И, если честно, я не ожидал, что такая на первый взгляд тривиальная задача займет столько время. Поэтому и технологии не выбирал. Впредь конечно нужно будет прикидывать, сколько времени, какие телодвижения могут занять. Еще из наблюдений, при работе скрипта не наблюдались нагрузки, и за пару дней в базе было уже 30 лямов записей. А вот остальные 60 и собирались остальное время. Возможно innodb с выделением под нее много памяти (таковая имелась) помогла бы.
UFO just landed and posted this here
memcache от есть, только я не совсем понял каким боком он поможет при решении данной задачи — библиотека (.fb2) прогонялась один раз, и собиралась статистика в базе. Cобственно кешировать то нечего? Повторно ни чего не использовалось.
Поэтому решил поучить другие языки и технологии. Выбор пал пока на perl, python и mysql.

Поправьте меня, если я не прав, но мне всегда казалось что MySQL — это субд.
И поэтому её даже технологией назвать нельзя!
UFO just landed and posted this here
" языки и технологии " mysql — это субд и SQL ( «язык структурированных запросов») + как технологию я его рассматриваю с точки зрения настройки под конкретные задачи.
Это не структура предложения, а состав. Вы же не анализировали связи между частями речи. Это раз. Два! Вы о чем рассказываете? Сначала про обучение, потом про поднятие pythona, потом про то что вам стало скучно.
Не вводите читателей в заблуждение. А то я уже кофе сварил, чтобы почитать что-то интересное, а тут.
Ну если б я сделал полный разбор предложений с учетом контекста, всей возможной морфологии и прочего. Собрал полную развернутую статистику и… пошел бы в гугл работать )))) Понятно дело — это только первые шаги, и думаю не каждый эти шаги с лету пройти сможет. Когда тебя поддерживают и верят что ты на верном пути и делать хочется, к когда с порога хаят — все желание пропадает )
ИИ и ЕЯ — это не один язык, технология, мнение… Это куча всего. Что-то подходит к одному, что-то к другому, на чем то быстрее, на чем то медленнее. Я поделился опытом, а это уже повод другим не наступать на мои грабли в будущем.
Можно дельный совет?
Огромное спасибо за ссылку, я что-то подобное надеялся найти около 2 лет.
А можете ссылку на архив флибусты скинуть в личку? Попробую дома повторить на python + mongodb.

Ещё не понял немного…

> После чего осталось самое простое – собрать статистику. Собирал я ее 2 месяца, после чего надоело.

Что именно вы делали два месяца?
ждал пока отработает скрипт (((
Еще бы топ слов построить, было бы интересно.
эт можно — могу сегодня запустить, думаю через пару дней будет статистика))) — дополню статью ей
А теперь несколько замечаний по коду:

1).
import re,sys,socket,pprint,json,chardet,ConfigParser

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

2).
if(data == False or data == ''): print "error incoming data !!!"

Скобки не нужны. А вот как можно и нужно (ну зачем условие то в одну строку?):
if not data:
    print "error incoming data !!!"


3).
if(DEBUG == 1): print word

Аналогично:
if DEBUG:
    print word


4).
while 1:

В Python принято:
while True:


Спасибо за статью, удачи в изучении языка!
Ну я PHP-пист ))) спасибо за замечания, учту. Разные языки — разная религия.
а вот этот момент
if(data == False or data == ''): print "error incoming data !!!"

— это танцы с типами, в php достаточно:
data == ''

— в python же так не получилось
Но конструкция
if not data:
    print "error incoming data !!!"


явно красивее смотрится, еще раз спасибо )
Sign up to leave a comment.

Articles