| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Распозноваие слов |
| Автор: Karta 14.5.2012, 13:22 |
| Добрый день. Начала изучать джаву, что бы потренироваться , пытаюсь выполнить задание. Пытаюсь написать программу, которая будет принимать в качестве аргумента имя текстового файла, и выводить CSV файл с колонками. 1. Слово. 2. Частота. 3. Частота (в %). Разделителями считать все символы кроме букв и цифр. Вот у меня вопрос. В какой последовательности надо реализовать поставленную задачу. Мне кажется, что сначала нужно с помощью InputStreamReader прочесть файл, затем наверное использовать StringBuilder для построения слов. А как строить и распозновать слова в прочитанном тексте? Нужно создавать массивы букв, цыфр, знаков препинания и потом сравнивать каждый символ из текста с символом из массива и запоминать? Как последовательнос построить решения задачи? Заранее спасибо |
| Автор: AntonSaburov 14.5.2012, 13:48 | ||
| Для начала можно просто прочесть файл по строкам (их проще разбирать). Считаем, что файл не большой и все уникальные слова из него могут поместиться в памяти. Пример ниже. И в самом конце комментарий про разбивку - там разбить считанную строку и наверно самое простое класть слова в Map. Вернее сначала ищем слово в Map где ключом является слово, а величиной является счетчик. По поводу параметра "частота" не совсем понятно как он вычисляется - видимо это количество этого слова во всем тексте. Значит сначала считаем все слова, а потом обработка - суммируем все счетчики и считаем процент.
|
| Автор: Karta 14.5.2012, 14:05 |
| Ой то, что надо, спасибо огромное |
| Автор: Pawl 14.5.2012, 21:04 |
| Задачка стандартная. Ее сейчас много где задают для проверки знаний io и collection. В этом случае лучше использовать Scanner. Посмотрите мой пост в http://forum.vingrad.ru/topic-346814.html теме. Там, правда, я делал вывод в обычный текстовый файл и не подсчитывал частоты встречаемости, но идея та же, и, прошу заметить, использовал для решения всего 2 цикла! |
| Автор: Karta 15.5.2012, 23:28 |
| Я в вашей работе практически ничего не поняла... Спасибо, но я лучше длинно по простому, как сама додумаюсь. |
| Автор: Pawl 17.5.2012, 11:28 |
Типа, лучшее враг хорошего? Я тут переделал свою прогу под Ваши нужды, правда, пришлось добавить еще 1 цикл для расчета в %. Напишу коменты и выложу в конце дня. ИМХО, лучше писать сразу хорошо, чем "по простому", хотя в первом случае и разбираться надо больше. |
| Автор: Pawl 17.5.2012, 17:03 | ||||
Вот, как и обещал, выкладываю для Вас программку. Для ее реботы требуется библиотека guava-12.0. Скачать ее Вы сможете http://code.google.com/p/guava-libraries/. Программа состоит из 2-х классов и снабжена подробными комментариями. Если что, пишите
|
| Автор: Karta 23.5.2012, 16:28 |
| |