`
Markov-Word-Generator هي مكتبة Python لإنشاء كلمات عشوائية وذات مصداقية ومعقولة تعتمد على قائمة الكلمات. ويقدر احتمال الحرف التالي في كلمة بناء على تواتر الأحرف N السابقة ، باستخدام سلاسل Markov. هذا يستخدم سلاسل ماركوف
pip install markov-word-generator
لإنشاء كلمات عشوائية تبدو وكأنها كلمات حقيقية ، تحلل هذه المكتبة توزيع الأحرف بين مجموعة بلغة معينة. ينشئ جدول رسم الخرائط لمجموعات الأحرف والتردد المرتبط به في المجموعة. من خلال تقدير احتمال وجود حرف بناءً على الأحرف السابقة ، تقوم المكتبة بإنشاء كلمات تحاكي أنماط اللغة الحقيقية.
فيما يلي خرائط الحرارة التي توضح توزيع كل حرف (عمود) بالنظر إلى واحد (الصف).
$
= نهاية الكلمة^
= بداية كلمةباللغة الإنجليزية:
والفرنسية:
إن تقدير احتمال ظهور الطابع في ظل احتمال أن يكون الشخص السابق المعطى يعمل بشكل جيد ولكنه لا يزال خطيرًا. يمكننا زيادة احتمالية العالم يبدو صحيحًا من خلال النظر إلى الشخصيات السابقة التالية.
سيقوم المولد بتحليل ملف نصي إدخال يحتوي على كلمة واحدة لكل سطر (القاموس) ، ويحسب كل حرف حدوث بناء على حدوث Nept the Neper table قم بإنشاء جدول رسم خرائط لكل مجموعة من الأحرف وتردده المرتبط به في المجموعة.
لإنشاء كلمة عشوائية باللغة الإنجليزية من خلال التنبؤ باحتمال كل حرف جديد استنادًا إلى آخر 4 أحرف ، يمكنك استخدام الكود التالي:
from markov_word_generator import MarkovWordGenerator , WordType
# Generate a random word in English by predicting the probability of each new character based on its last 4 last characters
generator = MarkovWordGenerator (
markov_length = 4 ,
language = 'en' ,
word_type = WordType . WORD ,
)
print ( generator . generate_word ())
الإخراج:
rebutaneously
Markovwordgenerator ():
markov_length
: (int): عدد الأحرف السابقة التي يجب مراعاتها.language
: (STR): اللغة التي يجب استخدامها لتوليد الكلمات. يجب أن تكون جزءًا من اللغات المدعومة .word_type
: (Str): نوع الكلمة لإنشاء. يجب أن يكون جزءًا من أنواع الكلمات المدعومة .dictionary_filename
: (STR): المجموعة لتحليل تحليل تردد الشخصية. يجب استخدامها فقط إذا لم يتم تعيين language
و word_type
.ignore_accents
: (Bool): إذا تم ضبطه على True ، يتم تجاهل لهجات أثناء التحليل. الافتراضي إلى خطأcenderate_word ()
from markov_word_generator import MarkovWordGenerator , WordType , AllowedLanguages
# Generate a random German name by predicting the probability of each new character based on its last 3 last characters
generator = MarkovWordGenerator (
markov_length = 3 ,
language = AllowedLanguages . DE ,
word_type = WordType . NAME ,
)
print ( generator . generate_word ())
ludgerten
يمكنك الوصول إلى قائمة اللغات المدعومة وأنواع الكلمات باستخدام الوظائف التالية:
import markov_word_generator
# List supported languages
print ( markov_word_generator . get_supported_languages ())
# ['EN', 'FR', 'DE', 'FI', 'IT', 'PT', 'SE']
# List supported word_type
print ( markov_word_generator . get_supported_word_types ())
# ['WORD', 'NAME']
يمكن إضافة المزيد من اللغات وأنواع الكلمات (النباتات وأسماء الأفلام والمدن ...) في المستقبل.
from markov_word_generator import MarkovWordGenerator , WordType , AllowedLanguages
generator = MarkovWordGenerator (
markov_length = N , # N=1,2,3,4 or 5 in following examples
language = AllowedLanguages . EN ,
word_type = WordType . WORD
)
for i in range ( 0 , 10 ):
print ( generator . generate_word ())
الإخراج:
eroun
unteticakreatintes
sucle
erarums
eablatirlac
e
ghils
rllig
beseleforuat
de
الإخراج:
malle
dallintathilight
boaddly
nobtiousle
ing
alaymplaings
rusle
sprevircirdbages
bant
ritablegruphicalls
الإخراج:
blungalinther
super
solder
degreetricked
mittlessly
out
hearf
fracertory
gyny
locious
الإخراج:
authering
negligented
manoeistical
bleat
lover
confusions
dest
hand
display
entwinkle
الإخراج:
significative
contention
grandmaidens
aidesdecamped
paralleled
contradicate
thereby
numskull
crises
battlegro
توليد 5000 كلمة عشوائية تجريبية لكل من الاختبارات والتحقق من النسبة المئوية منها الموجودة ككلمات حقيقية حقيقية. 10 اختبارات تم تشغيلها. من ن = 1 إلى ن = 5 في كل من نتائج اللغات الإنجليزية والفرنسية هي ما يلي
n اللغة | en | الاب* |
---|---|---|
1 | 4.61 ٪ | 6.15 ٪ |
2 | 8.89 ٪ | 10.60 ٪ |
3 | 14.80 ٪ | 10.04 ٪ |
4 | 33.08 ٪ | 33.88 ٪ |
5 | 62.84 ٪ | 65.68 ٪ |
القياسات التجريبية للنسبة المئوية للكلمات المخرجات من المولد هي الكلمات الحقيقية (الموجودة في القاموس) بناءً على عدد الأحرف التي نأخذها في الاعتبار في Markov_Chain أكثر من 5000 عينة * تم تجاهله في المعايير بالفرنسية
من n = 5 ، هناك أكثر من 50 ٪ من الفرص لإنشاء كلمة موجودة.
en | الاب | ES | دي | هو - هي | SE |
---|---|---|---|---|---|
Duplicables | Chouchonnées | inflamandando | Regenfreunden | Scommissari | Medmännens |
الحشيش | البوم | Diacontendera | rechtsbeleuchtes | insortiti | MetaLösningens |
النبطية | Saponisasiez | Transnacionarán | Unerschieben | Immalintenziale | Stationskligt |
Jinglehand | Pareraient | بتفر | unstimme | pronometro | Arbetslöftenas |
الجادة | Toniciens | التشفير | überredete | Acconciliani | Utredningsviljande |
تعريشة | تشاللي | Abombearán | زويشير | Afferrofilia | trudbritionsverktygs |
الأكثر فرعا | Potames | Banderolasteis | Plädiertem | dispiacerete | slappningarnas |
خطاب | رودي | تضيء | وولكن | Trisecchererai | tidsnärings |
حزن | Reluisionnés | desagüense | Kompetentenzeichnen | Riappavia | Spagatellig |
الانقسام | Sacagneuse | Desvergonzaremos | Dümmst | Sgancializzando | Yngstakternas |
en | الاب | ES | دي | هو - هي | SE |
---|---|---|---|---|---|
تشارلينا | أريان | ساندرو | جيرمان | سيفيرونيكا | بريتان |
سوريل | كليمنتين | uliseo | Gunde | إيفاريسا | كريستين |
أوستن | ثيوفي | تيوفيلومينا | ويرثولد | فلورنا | باهتة |
هاردين | أوغسطين | هيرينا | هانيليا | تيزيا | تورشتاين |
شانتال | جينينيت | أميلو | هيلمار | ليونارديناندا | جيتا |
كريستيان | نكهة | Leandra | تاتجا | Fortunatale | كيرستينا |
Lessica | إيسيدون | دولورنسيو | سيغاردت | سيموندو | SIGFRIDA |
ريانا | Clothaire | ديون | أنليا | Geltrudenzio | ثورستن |
Leanoreen | فابرييل | Anuncia | ترود | باتيا | غونيلز |
روزلين | باستيان | كاليس | إليونهارد | لورنتينا | jerkel |
بالنظر إلى أنواع أخرى من القواميس ، يمكن للمولد إنشاء كلمات عشوائية في بعض الموضوعات المحددة: وظائف عشوائية ، نباتات عشوائية ، حيوانات عشوائية ، مدن عشوائية ...