Как я могу выбрать случайные слова из базы данных электронного словаря или текстового файла?

Есть ли способ получить случайные слова из словарных баз, например, из пакетов dict-wn или freedict? Я ищу способ сделать это, используя скрипт bash или попробуйте инструмент командной строки, если он доступен.

7
задан 8 July 2014 в 01:34

3 ответа

Если список слов является файлом простого текста с одним словом на строку, то одна опция эти shuf, команда, например,

$ shuf -n5 /usr/share/dict/american-english
resuscitated
Lawson
concatenate
nonsmoker's
balmiest

Видит man shuf

SHUF(1)                          User Commands                         SHUF(1)

NAME
       shuf - generate random permutations

SYNOPSIS
       shuf [OPTION]... [FILE]
       shuf -e [OPTION]... [ARG]...
       shuf -i LO-HI [OPTION]...

DESCRIPTION
       Write a random permutation of the input lines to standard output.
13
ответ дан 8 July 2014 в 01:34

Я одобрил бы shuf для щипания строк из файла. Мы также должны быть осторожными со словами, потому что это - файл с разделением табуляцией, не просто пробел.

$ shuf -n5 /usr/share/dictd/wn.index | cut -d$'\t' -f1
table game
parsi
tetraneuris grandiflora
synonymously
decimal digit

shuf занимает 0,011 с здесь. sort -R (даже без awk) занимает 2,427 с. Это вызвано тем, что shuf просто ищет в течение времен файла n, в то время как вид читает и обрабатывает каждую строку... В этом случае это - 147 311 строк.

5
ответ дан 8 July 2014 в 01:34

Существует много способов получить случайное слово. Пример для получения пяти слов:

$ sort -R /usr/share/dictd/freedict-nld-eng.index | awk 'NR <= 5 { print $1 }'
verslappen
sport
libretto
golf
kerk

См. man sort для значения -R опция (подсказка: Случайный). awk выражение фильтрует на первых пяти записях (строки) и печатает первое поле (не другие столбцы).

1
ответ дан 8 July 2014 в 01:34

Другие вопросы по тегам:

Похожие вопросы: