LAC، الاسم الكامل للتحليل المعجمي للصينية، هو أداة تحليل معجمي مشتركة تم تطويرها بواسطة قسم معالجة اللغات الطبيعية في بايدو لتحقيق وظائف مثل تجزئة الكلمات الصينية، ووضع علامات على جزء من الكلام، والتعرف على الاسم الصحيح. تحتوي هذه الأداة على الميزات والمزايا التالية:
نقدم هنا بشكل أساسي تثبيت لغة بايثون واستخدامها، واستخدام اللغات الأخرى:
كود متوافق مع Python2/3
التثبيت التلقائي بالكامل: pip install lac
تنزيل شبه تلقائي: قم أولاً بتنزيل http://pypi.python.org/pypi/lac/، وقم بفك الضغط وتشغيل python setup.py install
بعد اكتمال التثبيت، يمكنك إدخال lac
أو lac --segonly
أو lac --rank
في سطر الأوامر لبدء الخدمة للحصول على تجربة سريعة.
يمكن للشبكات المحلية استخدام تثبيت مصدر Baidu، وسرعة التثبيت أسرع:
pip install lac -i https://mirror.baidu.com/pypi/simple
from LAC import LAC
# 装载分词模型
lac = LAC ( mode = 'seg' )
# 单个样本输入,输入为Unicode编码的字符串
text = u"LAC是个优秀的分词工具"
seg_result = lac . run ( text )
# 批量样本输入, 输入为多个句子组成的list,平均速率会更快
texts = [ u"LAC是个优秀的分词工具" , u"百度是一家高科技公司" ]
seg_result = lac . run ( texts )
【单样本】:seg_result = [LAC, 是, 个, 优秀, 的, 分词, 工具]
【批量样本】:seg_result = [[LAC, 是, 个, 优秀, 的, 分词, 工具], [百度, 是, 一家, 高科技, 公司]]
from LAC import LAC
# 装载LAC模型
lac = LAC ( mode = 'lac' )
# 单个样本输入,输入为Unicode编码的字符串
text = u"LAC是个优秀的分词工具"
lac_result = lac . run ( text )
# 批量样本输入, 输入为多个句子组成的list,平均速率更快
texts = [ u"LAC是个优秀的分词工具" , u"百度是一家高科技公司" ]
lac_result = lac . run ( texts )
مخرجات كل جملة هي نتيجة تجزئة الكلمات الخاصة بها word_list وtags_list لكل كلمة، ويكون تنسيقها (word_list,tags_list)
【单样本】: lac_result = ([百度, 是, 一家, 高科技, 公司], [ORG, v, m, n, n])
【批量样本】:lac_result = [
([百度, 是, 一家, 高科技, 公司], [ORG, v, m, n, n]),
([LAC, 是, 个, 优秀, 的, 分词, 工具], [nz, v, q, a, u, n, n])
]
مجموعة علامات فئة اسم العلم وجزء من الكلام هي كما يلي، حيث نحدد فئات أسماء الأعلام الأربعة الأكثر استخدامًا بأحرف كبيرة:
ملصق | معنى | ملصق | معنى | ملصق | معنى | ملصق | معنى |
---|---|---|---|---|---|---|---|
ن | اسم شائع | و | اسم الموقع | ق | مكان اسما | شمال غرب | عنوان العمل |
نيوزيلندي | أسماء مناسبة أخرى | ضد | فعل شائع | vd | ظرف الفعل | vn | اسم فعل |
أ | صفة | إعلان | ظرف | ان | اسم | د | ظرف |
م | محدد الكمية | س | محدد الكمية | ص | ضمير | ص | حرف الجر |
ج | اِقتِران | ش | جسيم | xc | كلمات وظيفية أخرى | ث | علامات الترقيم |
لكل | اسم | لوك | اسم المكان | ORG | اسم المنظمة | وقت | وقت |
from LAC import LAC
# 装载词语重要性模型
lac = LAC ( mode = 'rank' )
# 单个样本输入,输入为Unicode编码的字符串
text = u"LAC是个优秀的分词工具"
rank_result = lac . run ( text )
# 批量样本输入, 输入为多个句子组成的list,平均速率会更快
texts = [ u"LAC是个优秀的分词工具" , u"百度是一家高科技公司" ]
rank_result = lac . run ( texts )
【单样本】:rank_result = [['LAC', '是', '个', '优秀', '的', '分词', '工具'],
[nz, v, q, a, u, n, n],[3, 0, 0, 2, 0, 3, 1]]
【批量样本】:rank_result = [
(['LAC', '是', '个', '优秀', '的', '分词', '工具'],
[nz, v, q, a, u, n, n], [3, 0, 0, 2, 0, 3, 1]),
(['百度', '是', '一家', '高科技', '公司'],
[ORG, v, m, n, n], [3, 0, 2, 3, 1])
]
مجموعة التسميات لكل فئة من فئات أهمية الكلمات هي كما يلي. نستخدم التدرج المكون من 4 مستويات للتصنيف:
ملصق | معنى | شائع في جزء من الكلام |
---|---|---|
0 | الكلمات الزائدة المعبر عنها في الاستعلام | ص، ث، العاشر ج ... |
1 | الكلمات المؤهلة بشكل ضعيف في الاستعلام | ص، ج، ش... |
2 | الكلمات المؤهلة بقوة في الاستعلام | ن، ق، الخامس... |
3 | الكلمات الأساسية في الاستعلام | نيوزيلندي، شمال غرب، LOC ... |
على أساس مخرجات النموذج، تدعم LAC أيضًا المستخدمين لتكوين نتائج التجزئة المخصصة ومخرجات نوع الاسم الصحيح. عندما يتنبأ النموذج بعنصر يطابق القاموس، فإنه سيستبدل النتيجة الأصلية بنتيجة مخصصة. من أجل تحقيق مطابقة أكثر دقة، فإننا ندعم الأجزاء الطويلة المكونة من كلمات متعددة كعنصر.
نقوم بتنفيذ هذه الوظيفة عن طريق تحميل ملف القاموس. يمثل كل سطر من ملف القاموس عنصرًا مخصصًا، يتكون من كلمة واحدة أو عدة كلمات متتالية. يتم استخدام "/" بعد كل كلمة للإشارة إلى التسمية. سيتم استخدام التسمية الافتراضية للنموذج. كلما زاد عدد الكلمات لكل عنصر، كلما كان تأثير التدخل أكثر دقة.
مثال على ملف القاموس
وهذا مجرد مثال لإظهار النتائج في ظل متطلبات مختلفة. سيتم فتح وضع تكوين القاموس باستخدام أحرف البدل في المستقبل، لذا تابعنا باستمرار.
春天/SEASON
花/n 开/v
秋天的风
落 阳
from LAC import LAC
lac = LAC ()
# 装载干预词典, sep参数表示词典文件采用的分隔符,为None时默认使用空格或制表符't'
lac . load_customization ( 'custom.txt' , sep = None )
# 干预后结果
custom_result = lac . run ( u"春天的花开秋天的风以及冬天的落阳" )
春天/TIME 的/u 花开/v 秋天/TIME 的/u 风/n 以及/c 冬天/TIME 的/u 落阳/n
春天/SEASON 的/u 花/n 开/v 秋天的风/n 以及/c 冬天/TIME 的/u 落/n 阳/n
نحن نوفر أيضًا واجهة تدريب تدريجية، ويمكن للمستخدمين استخدام بياناتهم الخاصة للتدريب المتزايد. أولاً، يجب تحويل البيانات إلى تنسيق إدخال النموذج، وتكون جميع ملفات البيانات مشفرة بـ "UTF-8":
عينة البيانات
بما يتوافق مع تنسيق معظم مجموعات بيانات تجزئة الكلمات مفتوحة المصدر، يتم استخدام المسافات كعلامات لتجزئة الكلمات، كما هو موضح أدناه:
LAC 是 个 优秀 的 分词 工具 。
百度 是 一家 高科技 公司 。
春天 的 花开 秋天 的 风 以及 冬天 的 落阳 。
from LAC import LAC
# 选择使用分词模型
lac = LAC ( mode = 'seg' )
# 训练和测试数据集,格式一致
train_file = "./data/seg_train.tsv"
test_file = "./data/seg_test.tsv"
lac . train ( model_save_dir = './my_seg_model/' , train_data = train_file , test_data = test_file )
# 使用自己训练好的模型
my_lac = LAC ( model_path = 'my_seg_model' )
بيانات العينة
بناءً على بيانات تجزئة الكلمات، يتم تمييز كل كلمة بجزء الكلام أو فئة الكيان الخاصة بها على شكل "/ النوع". تجدر الإشارة إلى أن التدريب على التحليل المعجمي يدعم حاليًا فقط البيانات التي يتوافق نظام التصنيف الخاص بها مع نظامنا. سنفتح أيضًا دعمًا لنظام العلامات الجديد في المستقبل، لذا تابعونا.
LAC/nz 是/v 个/q 优秀/a 的/u 分词/n 工具/n 。/w
百度/ORG 是/v 一家/m 高科技/n 公司/n 。/w
春天/TIME 的/u 花开/v 秋天/TIME 的/u 风/n 以及/c 冬天/TIME 的/u 落阳/n 。/w
from LAC import LAC
# 选择使用默认的词法分析模型
lac = LAC ()
# 训练和测试数据集,格式一致
train_file = "./data/lac_train.tsv"
test_file = "./data/lac_test.tsv"
lac . train ( model_save_dir = './my_lac_model/' , train_data = train_file , test_data = test_file )
# 使用自己训练好的模型
my_lac = LAC ( model_path = 'my_lac_model' )
.
├── python # Python调用的脚本
├── c++ # C++调用的代码
├── java # Java调用的代码
├── Android # Android调用的示例
├── README.md # 本文件
└── CMakeList.txt # 编译C++和Java调用的脚本
إذا كنت تستخدم LAC في عملك الأكاديمي، فيرجى إضافة الاستشهادات التالية. يسعدنا جدًا أن LAC يمكنها مساعدتك في عملك الأكاديمي.
@article{jiao2018LAC,
title={Chinese Lexical Analysis with Deep Bi-GRU-CRF Network},
author={Jiao, Zhenyu and Sun, Shuqi and Sun, Ke},
journal={arXiv preprint arXiv:1807.01882},
year={2018},
url={https://arxiv.org/abs/1807.01882}
}
نحن نرحب بالمطورين للمساهمة بالكود في LAC. إذا قمت بتطوير ميزات جديدة وعثرت على أخطاء... فنحن نرحب بك لإرسال طلبات السحب والمشكلات إلى Github.