สร้างคำและประโยคแบบสุ่มได้อย่างง่ายดายใน Python
พื้นที่เก็บข้อมูล GitHub | PYPI | เอกสาร
Wonderwords เป็นแพ็คเกจ Python ที่มีประโยชน์สำหรับการสร้างคำสุ่มและประโยคสุ่มที่มีโครงสร้าง นอกจากนี้ยังมาพร้อมกับอินเทอร์เฟซบรรทัดคำสั่งที่มีสีสันสำหรับการสร้างคำสุ่มอย่างรวดเร็ว เวอร์ชันล่าสุดมีอยู่ใน GitHub ในขณะที่เวอร์ชันเสถียรมีอยู่ใน PYPI
นี่คือสิ่งที่ Wonderwords มีความสามารถ:
ในการติดตั้ง Wonderwords เวอร์ชันล่าสุดให้ใช้ตัวจัดการแพ็คเกจที่คุณชื่นชอบสำหรับดัชนีแพ็คเกจ Python เพื่อติดตั้งแพ็คเกจ wonderwords ตัวอย่างเช่นด้วย pip:
pip install wonderwordsในการอัพเกรด Wonderwords ด้วยการใช้ PIP:
pip install --upgrade wonderwordsในการตรวจสอบว่าการติดตั้งใช้งานได้นำเข้า WonderWords ใน Python:
import wonderwords หากคุณได้รับข้อผิดพลาด ModuleNotFound สอบให้แน่ใจว่าคุณได้ติดตั้ง Wonderwords จากขั้นตอนข้างต้น สำหรับปัญหาเพิ่มเติมให้เปิดปัญหาใหม่จากหน้า GitHub
ส่วนนี้จะอธิบายการใช้ Wonderwords สั้น ๆ เนื่องจาก Wonderwords มีอินเทอร์เฟซบรรทัดคำสั่งและโมดูล Python คุณจะพบสองส่วนย่อย
คลาสการสร้างคำแบบสุ่มพื้นฐานคือคลาส RandomWord คุณสามารถสร้างคำด้วยวิธี word :
from wonderwords import RandomWord
r = RandomWord ()
# generate a random word
r . word ()
# random word that starts with a and ends with en
r . word ( starts_with = "a" , ends_with = "en" )
# generate a random noun or adjective, by default all parts of speech are included
r . word ( include_parts_of_speech = [ "nouns" , "adjectives" ])
# generate a random word between the length of 3 and 8 characters
r . word ( word_min_length = 3 , word_max_length = 8 )
# generate a random word with a custom Python regular expression
r . word ( regex = ".*a" )
# some of the words in the default word lists have spaces, such as 'contact lens'
# this option disables them
r . word ( exclude_with_spaces = True )
# you can combine multiple filtering options
r . word ( starts_with = "ru" , word_max_length = 10 , include_parts_of_speech = [ "verbs" ]) นอกจากนี้คุณยังสามารถรับรายการคำทั้งหมดที่ตรงกับเกณฑ์บางอย่างโดยใช้วิธี filter :
# get a list of ALL words that start with "am"
r . filter ( starts_with = "am" )
# you can use all the options found in the word method:
r . filter ( ends_with = "k" , include_parts_of_speech = [ "verbs" ], word_min_length = 4 ) นอกจากนี้คุณยังสามารถสร้างรายการคำสุ่มด้วยวิธีการ random_words นี่เป็นเหมือนวิธีการกรองยกเว้นคุณระบุจำนวนคำที่จะส่งคืนและคำจะถูกเลือกแบบสุ่ม หากมีคำไม่เพียงพอที่จะตอบสนองจำนวนเงิน NoWordsToChooseFrom จะเพิ่มขึ้น:
# get a list of 3 random nouns
r . random_words ( 3 , include_parts_of_speech = [ "nouns" ])
# you can use all the options found in the word method
r . random_words ( 5 , starts_with = "o" , word_min_length = 10 )
# if the amount of words you want to get is larger than the amount of words
# there are, a NoWordsToChooseFrom exception is raised:
r . random_words ( 100 , starts_with = "n" , word_min_length = 16 )
# there are less than 100 words that are at least 16 letters long and start with
# n, so an exception is raised
# you can silence the NoWordsToChooseFrom exception and return all words even
# if there are less, by setting return_less_if_necessary to True
r . random_words ( 100 , starts_with = "n" , word_min_length = 16 , return_less_if_necessary = True ) การสร้างประโยคแบบสุ่มนั้นง่ายโดยใช้คลาส RandomSentence :
from wonderwords import RandomSentence
s = RandomSentence ()
# Get a random bare-bone sentence
s . bare_bone_sentence ()
# Get a random bare-bone sentence with a direct object
s . simple_sentence ()
# Get a random bare-bone sentence with an adjective
s . bare_bone_with_adjective ()
# Get a random sentence with a subject, predicate, direct object and adjective
s . sentence () คำถูกจัดระเบียบในหมวดหมู่เช่น "คำนาม", "คำกริยา" และ "คำคุณศัพท์" ถ้าคุณมีหมวดหมู่คำของคุณเองล่ะ? คุณสามารถระบุหมวดหมู่ที่กำหนดเองของคุณเมื่อสร้างอินสแตนซ์คลาส RandomWord :
from wonderwords import RandomWord
cars = [ "Chevrolet" , "Subaru" , "Tesla" ]
airplanes = [ "Boeing" , "Airbus" , "Cessna" ]
w = RandomWord ( cars = cars , airplanes = airplanes )
# Will return a random car or airplane
w . word ()
# Will return a random car
w . word ( include_categories = [ "cars" ])
# You can also mix and match custom categories with defaults
from wonderwords import Defaults
proper_nouns = [ "Austin" , "Seattle" , "New York" ]
w2 = RandomWord ( proper_nouns = proper_nouns , common_nouns = Defaults . NOUNS )
# Will return either Seattle or seat
w . word ( regex = "[Ss]eat.*" )ในที่สุดเริ่มต้นด้วยเวอร์ชัน 2.3 Wonderwords ได้รับการสนับสนุนอย่างชัดเจนสำหรับการกรองคำหยาบคายจากรายการคำ ในขณะนี้นี่เป็นพื้นฐาน:
from wonderwords import is_profanity , filter_profanity
# Test against words that could possibly be offensive. Good of user-facing apps.
is_profanity ( "apple" ) # False
# Can be done with a list
words = [ ... ]
# The function returns a generator, so we convert it to a list
words_clean = list ( filter_profanity ( words ))การใช้งานขั้นสูงเพิ่มเติม (และการสอน!) พบได้ในเอกสารเช่นการเพิ่มหมวดหมู่คำที่กำหนดเอง เอกสารฉบับเต็มพร้อมข้อมูลทั้งหมดสามารถดูได้ที่: https://wonderwords.readthedocs.io
หมายเหตุ : ก่อนที่จะใช้อินเตอร์เฟสบรรทัดคำสั่ง (CLI) ตรวจสอบให้แน่ใจว่าคุณติดตั้งการพึ่งพาที่จำเป็นทั้งหมดสำหรับ CLI โดยใช้ pip install wonderwords[cli] โดยปกติแล้ว Wonderwords ไม่ต้องการการพึ่งพา แต่ใช้งานที่หลากหลายสำหรับเอาต์พุตสีในบรรทัดคำสั่ง
Wonderwords ให้อินเทอร์เฟซบรรทัดคำสั่งเช่นกันซึ่งสามารถใช้กับคำสั่ง wonderwords การใช้งาน:
usage: wonderwords [-h] [-w] [-f] [-l LIST] [-s {bb,ss,bba,s}] [-v] [-S STARTS_WITH] [-e ENDS_WITH]
[-p {noun,verb,adjective,nouns,verbs,adjectives} [{noun,verb,adjective,nouns,verbs,adjectives} ...]]
[-m WORD_MIN_LENGTH] [-M WORD_MAX_LENGTH] [-r REGEX] [-x] [-d DELIMITER] [-E]
Generate random words and sentences from the command line. Here is a full list of available commands. To learn more
about each command, go to the documentation at https://wonderwords.readthedocs.io
options:
-h, --help show this help message and exit
-w, --word, --random-word
generate a random word
-f, --filter get a list of all known words matching the criteria specified
-l LIST, --list LIST return a list of a certain length of random words
-s {bb,ss,bba,s}, --sentence {bb,ss,bba,s}
return a sentence based on the structure chosen
-v, --version print the version number and exit
-S STARTS_WITH, --starts-with STARTS_WITH
strings the random word(s) should start with
-e ENDS_WITH, --ends-with ENDS_WITH
strings the random word(s) should end with
-p {noun,verb,adjective,nouns,verbs,adjectives} [{noun,verb,adjective,nouns,verbs,adjectives} ...], --parts-of-speech {noun,verb,adjective,nouns,verbs,adjectives} [{noun,verb,adjective,nouns,verbs,adjectives} ...]
only include certain parts of speech (by default all parts of speech are included)
-m WORD_MIN_LENGTH, --word-min-length WORD_MIN_LENGTH
minimum length of the word(s)
-M WORD_MAX_LENGTH, --word-max-length WORD_MAX_LENGTH
maximum length of the word(s)
-r REGEX, --regex REGEX, --re REGEX, --regular-expression REGEX
a python-style regular expression for the word(s) to match
-x, --exclude-with-spaces
exclude open compounds, such as 'contact lens'
-d DELIMITER, --delimiter DELIMITER
specify the delimiter to put between a list of words, default is ', '
-E, --suppress-error-on-less
suppress errors when less words are returned in a list then wanted
คำสั่งพื้นฐานคือ:
-w : สร้างคำสุ่ม-f : ซึ่งใช้งานได้เหมือนฟังก์ชั่น filter เพื่อส่งคืนคำทั้งหมดที่ตรงกับเกณฑ์ที่แน่นอน-l LIST : รับรายการคำสุ่ม LIST-s {bb,ss,bba,s} : สร้างประโยคสุ่ม:bb : ประโยคกระดูกเปลือยss : ประโยคง่ายๆ (ประโยคกระดูกเปลือยที่มีวัตถุโดยตรง)bba : ประโยคกระดูกเปลือยพร้อมคำคุณศัพท์s : สร้างประโยคง่ายๆด้วยคำคุณศัพท์ ในช่วงเริ่มต้น Wonderwords ไม่มีระบบการกำหนดเวอร์ชันที่ตั้งไว้ดังนั้นเวอร์ชันก่อนที่ v2.0.0-alpha จะอยู่ในความระส่ำระสาย เริ่มต้นด้วยเวอร์ชัน 2 อัลฟ่า Wonderwords ใช้ เวอร์ชัน sematic
Wonderwords เป็นโอเพ่นซอร์สและมีการแจกจ่ายภายใต้ใบอนุญาต MIT ดูใบอนุญาตสำหรับรายละเอียดเพิ่มเติม
ยินดีต้อนรับการมีส่วนร่วมทั้งหมดและเราหวังว่า Wonderwords จะเติบโตอย่างต่อเนื่อง เริ่มต้นด้วยการอ่าน CONTRIBUTING.md สำหรับการสนับสนุนแนวทางและวิธีการเริ่มต้น
มีความเป็นไปได้ที่จะต้องมีผลงานต่อไปนี้:
profanitylist.txt จาก Robertjgabriel/Google-Profanity-Words ภายใต้ใบอนุญาต Apache-2.0