Cum să alegi un cuvânt englezesc aleatoriu dintr-o listă [closed] (Programare, Python, Random, Listă De Cuvinte)

Josh Hunt a intrebat.

Care ar fi cea mai bună modalitate de a obține o funcție care să returneze un cuvânt englezesc aleatoriu (de preferință un substantiv), fără a păstra o listă cu toate cuvintele posibile într-un fișier înainte?

Comentarii

  • Aceasta nu este o întrebare sensibilă. Ați putea oferi un context sau un indiciu suplimentar cu privire la ceea ce încercați să faceți. Generarea de cuvinte englezești fără un dicționar de engleză este o contradicție logică. Vă rugăm să clarificați acest lucru. –  > Por S.Lott.
  • A lua un cuvânt din orice resursă online concepută pentru a furniza cuvinte aleatorii pare a fi o idee bună. 🙂 –  > Por Paulo Guedes.
  • @joshhunt: Ce înseamnă „masiv”? Dicționarele Spellcheck pentru limba engleză sunt de aproximativ 400K. A se vedea aspell.net pentru unul bun. –  > Por S.Lott.
8 răspunsuri
Triptic

Listele de cuvinte nu trebuie să ocupe atât de mult spațiu.

Iată un listă de cuvinte JSON cu peste 5000 de cuvinte, toate substantive. Are sub 50K, adică dimensiunea unei imagini jpeg de mărime medie.

Voi lăsa alegerea unei liste la întâmplare ca un exercițiu pentru cititor.

Comentarii

  • Aceasta este într-adevăr cea mai bună opțiune. Ați putea păstra cu ușurință întreaga listă în memorie și veți avea un control complet asupra sursei – fără modificări neașteptate, fără probleme de conexiune, fără probleme de securitate și, în general, ar trebui să fie mult mai ușor de implementat. –  > Por Whatsit.
  • Și nici măcar nu este nevoie să păstrați totul în memorie. –  > Por Triptych.
Alex Reitbort

Nu se poate. Nu există un algoritm care să genereze cuvinte cu sens. Poți genera doar cuvinte care sună ca în engleză, dar nu vor avea niciun sens.

Comentarii

  • În timp ce hobarattically trice, puteți totuși să altoiți un finth. –  > Por dkamins.
Gary Willoughby

Ați putea pune funcția să încerce să analizeze o resursă online, cum ar fi:

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

Comentarii

  • Vă rugăm să remediați link-ul rupt –  > Por Diederik.
splattne

O altă abordare teoretică: ați putea să răzuiți articol aleatoriu de pe wikipedia și să returnați al N-lea cuvânt al articolului.

Comentarii

  • Este o idee frumoasă, dar ar putea fi nevoie să filtrați datele și numerele și cuvintele care nu sunt în limba engleză. –  > Por Ben.
  • Rezultatele nu ar fi foarte aleatoare – ai avea tendința de a obține aceleași câteva cuvinte de multe ori și tot felul de alte probleme. –  > Por Whatsit.
  • @Whatsit Cred că ai dreptate. Pe de altă parte: ce înseamnă cu adevărat un cuvânt englezesc aleatoriu? Dacă cereți cuiva un cuvânt la întâmplare, acesta va avea o distribuție statistică similară –  > Por splattne.
jujibeans

Folosiți doar api-ul de cuvinte aleatorii al lui setgetgo. Este gratuit, este ușor și este grozav.

http://randomword.setgetgo.com/

Comentarii

  • Responce returnează cuvinte reale, dar și returnează cuvinte nereale –  > Por Tapa Save.
Luke Sampson

Există un generator de cuvinte aleatorii aici – nu este englezesc, dar este englezesc, adică cuvintele sunt suficient de asemănătoare cu o limbă pentru ca un utilizator să poată citi cuvintele și să le stocheze în memoria pe termen scurt.

Codul sursă este în C# și este un pic cam încurcat, dar ați putea folosi o abordare similară în Python pentru a genera o mulțime de cuvinte fără a fi nevoie să stocați o listă masivă.

Alternativ, puteți apela direct serviciul web de pe pagina demonstrativă – este găzduit pe GoDaddy, deci nu există garanții că va funcționa în producție!

Chinmay Kanchi

Puteți descărca listele de „cuvinte comune pentru SOWPODS și TWL” de la adresa http://www.math.toronto.edu/jjchew/scrabble/lists/ . Am pus laolaltă toate cuvintele din aceste fișiere și lista a cântărit aproximativ 642k. Nu este imensă după orice standarde. Listele conțin totuși o mulțime de cuvinte obscure, deoarece sunt destinate utilizării în turneele de Scrabble. Partea bună este că listele formează un subset substanțial al limbii engleze.

lc.

Ei bine, ai trei opțiuni:

  • Codificați lista de cuvinte și inițializați o matrice cu ea.
  • Obțineți lista de la o locație de pe internet în loc de un fișier.
  • Păstrați o listă de cuvinte posibile într-un fișier.

Singura modalitate de a evita cele de mai sus este dacă nu vă interesează dacă cuvântul este real: puteți genera pur și simplu șiruri de caractere de lungime aleatorie. (Nu există nicio modalitate de a genera cuvinte în mod programatic fără o listă de dicționare de la care să pornești).