مستقل. صغير. لغة محايدة.
Budoux هو خليفة Budou ، أداة Organizer Line Break التي تعمل بالطاقة الآلية.
إنه مستقل . إنه يعمل دون أي تبعية على أجهزة Words Througe من طرف ثالث مثل Google Cloud Language API.
إنه صغير . يستغرق حوالي 15 كيلو بايت فقط بما في ذلك نموذج التعلم الآلي. من المعقول استخدامه حتى على جانب العميل.
إنها لغة محايدة . يمكنك تدريب نموذج لأي لغة عن طريق تغذية مجموعة بيانات على البرنامج النصي التدريبي في Budoux.
أخيرًا وليس آخرًا ، يدعم Budoux مدخلات HTML.
https://google.github.io/budoux
يستخدم الكوري مسافات بين الكلمات ، بحيث يمكنك عمومًا منع الكلمات عبر الأسطر عن طريق تطبيق word-break: keep-all على الفقرة ، والتي يجب أن تكون أكثر أداءً من تثبيت Budoux. ومع ذلك ، يسعدنا استكشاف دعم اللغة الكورية المخصصة إذا ثبت أن الحل أعلاه غير كافٍ.
$ pip install budouxيمكنك الحصول على قائمة بالعبارات عن طريق تغذية جملة إلى المحلل. أسهل طريقة هي الحصول على محلل هو تحميل المحلل الافتراضي لكل لغة.
اليابانية:
import budoux
parser = budoux . load_default_japanese_parser ()
print ( parser . parse ( '今日は天気です。' ))
# ['今日は', '天気です。']الصينية المبسطة:
import budoux
parser = budoux . load_default_simplified_chinese_parser ()
print ( parser . parse ( '今天是晴天。' ))
# ['今天', '是', '晴天。']الصينيين التقليديين:
import budoux
parser = budoux . load_default_traditional_chinese_parser ()
print ( parser . parse ( '今天是晴天。' ))
# ['今天', '是', '晴天。']التايلاندية:
import budoux
parser = budoux . load_default_thai_parser ()
print ( parser . parse ( 'วันนี้อากาศดี' ))
# ['วัน', 'นี้', 'อากาศ', 'ดี']يمكنك أيضًا ترجمة سلسلة HTML لالتفاف عبارات بميزات غير مكشوفة. يستخدم المحلل الافتراضي مساحة عرض الصفر (U+200B) لفصل العبارات.
print ( parser . translate_html_string ( '今日は<b>とても天気</b>です。' ))
# <span style="word-break: keep-all; overflow-wrap: anywhere;">今日は<b>u200bとてもu200b天気</b>です。</span> يرجى ملاحظة أنه يتم الإشارة إلى الفواصل على أنها u200b في المثال أعلاه لأغراض توضيحية ، ولكن الإخراج الفعلي هو سلسلة غير مرئية لأنها مساحة عرض صفر.
إذا كان لديك نموذج مخصص ، فيمكنك استخدامه على النحو التالي.
with open ( '/path/to/your/model.json' ) as f :
model = json . load ( f )
parser = budoux . Parser ( model )ملف نموذج لـ Budoux هو ملف JSON يحتوي على أزواج من الميزة ودرجته المستخرجة من التدريب على التعلم الآلي. تمثل كل درجة أهمية الميزة في تحديد ما إذا كان سيتم كسر الجملة عند نقطة محددة.
لمزيد من التفاصيل حول نموذج JavaScript ، يرجى الرجوع إلى JavaScript Module README.
يمكنك أيضًا تنسيق المدخلات على المحطة الخاصة بك مع أمر budoux .
$ budoux 本日は晴天です。 # default: japanese
本日は
晴天です。
$ budoux -l ja 本日は晴天です。
本日は
晴天です。
$ budoux -l zh-hans 今天天气晴朗。
今天
天气
晴朗。
$ budoux -l zh-hant 今天天氣晴朗。
今天
天氣
晴朗。
$ budoux -l th วันนี้อากาศดี
วัน
นี้
อากาศ
ดี $ echo $'本日は晴天です。 n明日は曇りでしょう。 ' | budoux
本日は
晴天です。
---
明日は
曇りでしょう。 $ budoux 本日は晴天です。 -H
<span style="word-break: keep-all; overflow-wrap: anywhere;">本日はu200b晴天です。</span> يرجى ملاحظة أنه يتم الإشارة إلى الفواصل على أنها u200b في المثال أعلاه لأغراض توضيحية ، ولكن الإخراج الفعلي هو سلسلة غير مرئية لأنها مساحة عرض صفر.
إذا كنت ترغب في رؤية المساعدة ، قم بتشغيل budoux -h .
$ budoux -h
usage: budoux [-h] [-H] [-m JSON | -l LANG] [-d STR] [-V] [TXT]
BudouX is the successor to Budou,
the machine learning powered line break organizer tool.
positional arguments:
TXT text (default: None)
optional arguments:
-h, --help show this help message and exit
-H, --html HTML mode (default: False)
-m JSON, --model JSON custom model file path (default: /path/to/budoux/models/ja.json)
-l LANG, --lang LANG language of custom model (default: None)
-d STR, --delim STR output delimiter in TEXT mode (default: ---)
-V, --version show program's version number and exit
supported languages of `-l`, `--lang`:
- ja
- zh-hans
- zh-hant
- th يدعم Budoux مدخلات HTML ومخرجات HTML مع ترميز تلتف العبارات ، ولكن ليس من المفترض استخدامها كمعقم HTML. Budoux لا يقوم بتطهير أي مدخلات. مدخلات HTML الضارة تنتج مخرجات HTML الخبيثة. يرجى استخدامه مع مكتبة مطهر مناسبة إذا كنت لا تثق في الإدخال.
يحتوي النص الإنجليزي على العديد من القرائن ، مثل التباعد والواصلة ، والتي تمكن من فترات الاستراحة الجميلة والقابلة للقراءة. ومع ذلك ، فإن بعض لغات CJK تفتقر إلى هذه القرائن ، وبالتالي من الصعب معالجتها. يمكن أن تحدث فواصل الخط بشكل عشوائي وعادة ما تكون في منتصف كلمة أو عبارة دون نهج أكثر دقة. هذه مشكلة طويلة الأمد في الطباعة على الويب ، مما يؤدي إلى تدهور قابلية القراءة.
تم اقتراح Budou كحل لهذه المشكلة في عام 2016. إنه يترجم تلقائيًا جمل CJK إلى HTML مع عبارات معجمية ملفوفة في وضع علامات غير متجانسة ، وذلك إلى فترات تحكم خطوط الدلالة. قام Budou بحل هذه المشكلة إلى حد ما ، لكن لا يزال لديه بعض المشكلات التي تتكامل مع سير عمل إنتاج الويب الحديث.
أكبر حاجز في تطبيق Budou على موقع الويب هو أنه يتمتع بالاعتماد على مقطعات الكلمات من الطرف الثالث. عادةً ما يكون مقطع الكلمات هو برنامج كبير غير ممكن تنزيله لكل طلب صفحة ويب. سيكون أيضًا خيارًا غير مرغوب فيه لتقديم طلب إلى خدمة تجزئة الكلمات المستندة إلى مجموعة النظراء لكل جملة ، مع الأخذ في الاعتبار السرعة والتكلفة. لهذا السبب نحتاج إلى أداة منظمات Break Break المستقلة المجهزة بمحرك التجزئة الخاص بها الصغير بما يكفي ليتم تجميعها في رمز JavaScript من جانب العميل.
Budou X هو خليفة Budou ، المصمم ليتم دمجه مع موقع الويب الخاص بك دون أي متاعب.
يستخدم Budoux خوارزمية Adaboost لقطع الجملة في عبارات من خلال النظر في المهمة كمشكلة تصنيف ثنائية للتنبؤ بما إذا كنت تريد الانهيار أم لا بين جميع الشخصيات. يستخدم ميزات مثل الشخصيات حول نقطة الاستراحة ، وكتل Unicode الخاصة بهم ، ومجموعات منها لتقديم تنبؤ. يقوم نموذج التعلم الآلي للإخراج ، والذي يتم ترميزه كملف JSON ، بتخزين أزواج من الميزة ودرجة أهميتها. يأخذ Budoux Parser ملف نموذج لبناء قطاع وترجمة جمل الإدخال إلى قائمة من العبارات.
يمكنك إنشاء نموذج مخصص الخاص بك لأي لغة من خلال إعداد بيانات التدريب باللغة المستهدفة. مجموعة بيانات التدريب عبارة عن ملف نصي كبير يتكون من جمل مفصولة بعبارات مع رمز الفاصل "‘ "(U+2581) كما هو موضح أدناه.
私は▁遅刻魔で、▁待ち合わせに▁いつも▁遅刻してしまいます。
メールで▁待ち合わせ▁相手に▁一言、▁「ごめんね」と▁謝れば▁どうにか▁なると▁思っていました。
海外では▁ケータイを▁持っていない。
على افتراض أن الملف النصي يتم حفظه على أنه mysource.txt ، يمكنك إنشاء طراز مخصص الخاص بك عن طريق تشغيل الأوامر التالية.
$ pip install .[dev]
$ python scripts/encode_data.py mysource.txt -o encoded_data.txt
$ python scripts/train.py encoded_data.txt -o weights.txt
$ python scripts/build_model.py weights.txt -o mymodel.json يرجى ملاحظة أن train.py يستغرق وقتًا لإكماله اعتمادًا على موارد الكمبيوتر الخاصة بك. الأخبار السارة هي أن خوارزمية التدريب هي خوارزمية في أي وقت ، حتى تتمكن من الحصول على ملف أوزان حتى لو قمت بقطع التنفيذ. يمكنك إنشاء ملف نموذج صالح عن طريق تمرير ملف الأوزان إلى build_model.py حتى في مثل هذه الحالة.
تم تصميم النموذج الافتراضي لليابانية ( budoux/models/ja.json ) باستخدام KNBC Corpus. يمكنك إنشاء مجموعة بيانات تدريب ، والتي نسميها source_knbc.txt أدناه على سبيل المثال ، من المجموعة عن طريق تشغيل الأوامر التالية:
$ curl -o knbc.tar.bz2 https://nlp.ist.i.kyoto-u.ac.jp/kuntt/KNBC_v1.0_090925_utf8.tar.bz2
$ tar -xf knbc.tar.bz2 # outputs KNBC_v1.0_090925_utf8 directory
$ python scripts/prepare_knbc.py KNBC_v1.0_090925_utf8 -o source_knbc.txt Shuhei iitsuka
هذا ليس منتج Google المدعوم رسميًا.