Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.
Ограничения: максимум вложений в сообщении — 3 (3 осталось), максимальный размер всех файлов — 300 КБ, максимальный размер одного файла — 100 КБ
Снимите пометку с вложений, которые необходимо удалить
Перетащите файлы сюда или используйте кнопку для добавления файлов
Вложения и другие параметры
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр

Сообщения в этой теме

Автор Python
 - июля 8, 2012, 19:08
Цитата: Тайльнемер от июля  8, 2012, 18:59
А unicode-compatible solution-то есть?
Clojure позволяет работать с юникодом, в т.ч. и в регексах (в первом примере \p{L} — поиск всех символов, определенных в юникоде как буквы). Впрочем, мой вариант для юниксовых утилит должен работать и с юникодом, при условии, что в тексте используется только ascii-совместимая пунктуация.
Автор Тайльнемер
 - июля 8, 2012, 18:59
Цитата: Python от июля  8, 2012, 17:27
Cyrillic-compatible solution:
Code: [Select]cat text | tr '[\000-\100\133-\140\173-\177]' '\n' | sort -u >wordlist
А unicode-compatible solution-то есть?
Автор Python
 - июля 8, 2012, 17:27
Цитата: Python от июля  8, 2012, 14:12
Цитата: shell от июля  8, 2012, 13:24
tr -c '[:alpha:]' '\n' < text | sort -u > wordlist

I've just tested it in Cygwin. It is good for basic ASCII, but Cyrillic letters are not :alpha:, so they're skipped too.
Cyrillic-compatible solution:
cat text | tr '[\000-\100\133-\140\173-\177]' '\n' | sort -u >wordlist
Автор Python
 - июля 8, 2012, 14:12
Цитата: shell от июля  8, 2012, 13:24
tr -c '[:alpha:]' '\n' < text | sort -u > wordlist

I've just tested it in Cygwin. It is good for basic ASCII, but Cyrillic letters are not :alpha:, so they're skipped too.
Автор wangjhenbai
 - июля 8, 2012, 13:40
Цитата: Максимм от июля  6, 2012, 21:26
P.S. Да хотя бы и не переводить в начальную форму, сойдёт и без этого. Лишь бы убрать все словарные повторы, а остаток превратить в форму списка.
Как раз это и делает программа Python'а, которую он привёл выше. :yes:
Автор shell
 - июля 8, 2012, 13:24
Цитата: Python от июля  6, 2012, 06:09
Написать программу, разбивающую текст на слова и сортирующую их в алфавитном порядке — несложно. На Clojure это будет примерно так:

(->> (slurp "inputfile.txt") ; чтение файла
     (re-seq #"\p{L}+") ; поиск последовательностей букв
     set sort ; исключение дубликатов и сортировка
     (reduce #(str %1 "\n" %2)) ; объединить слова в текст, разбитый на строчки
     (spit "outputfile.txt")) ; запись в файл

Too long, too ugly. The best solution:

tr -c '[:alpha:]' '\n' < text | sort -u > wordlist
Автор Rachtyrgin
 - июля 8, 2012, 10:10
Цитата: Максимм от июля  6, 2012, 21:26
Да хотя бы и не переводить в начальную форму, сойдёт и без этого. Лишь бы убрать все словарные повторы, а остаток превратить в форму списка.

Это как раз то, что делает моя программка. Шлите исходный текст для эксперимента...
Автор Максимм
 - июля 6, 2012, 21:26
Большое спасибо за отклик на мой вопрос и конструктивные советы. Насчёт перевода в начальную форму. Да, наверное, было бы рационально переводить в начальную форму. Глагол в моём примере я должен был поставить тоже в инфинитив. Как-то пропустил и не сделал этого.
Зачем это нужно. Берёшь книгу на языке, который учишь. Вставляешь текст.  Программа выкидывает на выходе словарик всех слов, употреблённых в данном тексте (книге). Дальше просматриваешь этот словарик, замечаешь слова, которых ещё не знаешь, справляешься в электронном словаре о значении. Дальше можно спокойно читать книгу, не отвлекаясь.
Мне кажется, так было бы удобно.
P.S. Да хотя бы и не переводить в начальную форму, сойдёт и без этого. Лишь бы убрать все словарные повторы, а остаток превратить в форму списка.
Автор Python
 - июля 6, 2012, 12:27
Цитата: wangjhenbai от июля  6, 2012, 09:40
Цитата: Python от июля  6, 2012, 06:09
(re-seq #"\p{L}+") ; поиск последовательностей букв
Цитата: http://clojuredocs.org/clojure_core/clojure.core/re-seqReturns a lazy sequence of successive matches of pattern in string, using java.util.regex.Matcher.find(), each such match processed with re-groups.
Цитироватьlazy sequence
Вот когда я начинаю завидовать клоџурщикам...
В нашем случае, lazy-sequence сразу же прокручивается через set и sort, поэтому от laziness здесь пользы никакой.
Автор wangjhenbai
 - июля 6, 2012, 09:40
Цитата: Python от июля  6, 2012, 06:09
(re-seq #"\p{L}+") ; поиск последовательностей букв
Цитата: http://clojuredocs.org/clojure_core/clojure.core/re-seqReturns a lazy sequence of successive matches of pattern in string, using java.util.regex.Matcher.find(), each such match processed with re-groups.
Цитироватьlazy sequence
Вот когда я начинаю завидовать клоџурщикам...

Конечно, такое можно сделать и в Scheme, но не сделали же...