Как выбрать случайное английское слово из списка

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

Ответов (8)

Решение

Списки слов не должны занимать так много места.

Вот список слов JSON из 2465 слов, все существительные . Его размер составляет менее 50 КБ, что соответствует размеру изображения jpeg среднего размера.

Я оставлю выбор наугад в качестве упражнения для читателя.

Вы можете использовать функцию, чтобы попытаться проанализировать онлайн-ресурс, например:

http://www.zokutou.co.uk/randomword/

Что ж, у вас есть три варианта:

  • Жестко запрограммируйте список слов и инициализируйте им массив.
  • Получите список из Интернета, а не из файла.
  • Сохраните список возможных слов в файле.

Единственный способ избежать вышеизложенного - это если вас не беспокоит, является ли слово настоящим: вы можете просто генерировать строки символов произвольной длины. (Невозможно программно генерировать слова без списка словарей.)

Другой теоретический подход: вы можете очистить случайную страницу статьи в Википедии и вернуть N-е слово статьи.

Вы не можете. Не существует алгоритма генерации значимых слов. Вы можете генерировать только слова, которые звучат как английские, но они не будут иметь никакого значения.

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

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

В качестве альтернативы вы можете напрямую вызвать веб-службу на демонстрационной странице - хотя она размещена на GoDaddy, поэтому нет никаких гарантий, что она будет работать в производственной среде!

Вы можете скачать списки «общих слов для SOWPODS и TWL» с http://www.math.toronto.edu/jjchew/scrabble/lists/ . Я сложил все слова в этих файлах вместе, и список весил примерно 642 КБ. Не огромная по любым стандартам. Однако списки содержат много непонятных слов, поскольку они предназначены для использования в турнирах Scrabble. Хорошо то, что списки составляют значительную часть английского языка.

Просто используйте случайное слово api из setgetgo. Это бесплатно, это просто и потрясающе.

http://randomword.setgetgo.com/