
XMNLP: ชุดเครื่องมือประมวลผลภาษาธรรมชาติโอเพนซอร์สจีนออกจากกล่อง
XMNLP: ชุดเครื่องมือประมวลผลภาษาธรรมชาตินอกกรอบภาษาจีน
ติดตั้ง XMNLP เวอร์ชันล่าสุด
pip install -U xmnlp
ผู้ใช้ในประเทศสามารถเพิ่มอูลดัชนี
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -U xmnlpหลังจากติดตั้งแพ็คเกจคุณต้องดาวน์โหลดน้ำหนักรุ่นที่จะใช้ตามปกติ
โปรดดาวน์โหลดรุ่น XNLP เวอร์ชันที่สอดคล้องกัน หากคุณยังไม่ชัดเจนเกี่ยวกับเวอร์ชันของ XMNLP คุณสามารถเรียกใช้งาน python -c 'import xmnlp; print(xmnlp.__version__)' เพื่อดูเวอร์ชัน
| ชื่อนางแบบ | เวอร์ชันที่ใช้งานได้ | ดาวน์โหลดที่อยู่ |
|---|---|---|
| XMNLP-ONNX-MODELS-V5.ZIP | v0.5.0, v0.5.1, v0.5.2, v0.5.3 | Feishu [ighi] | Baidu Netdisk [L9ID] |
| xmnlp-onnx-models-v4.zip | v0.4.0 | Feishu [DKLA] | Baidu Netdisk [J1QI] |
| xmnlp-onnx-models-v3.zip | v0.3.2, v0.3.3 | Feishu [O4BA] | Baidu Netdisk [9G7E] |
หลังจากดาวน์โหลดโมเดลแล้วคุณจะต้องตั้งค่าเส้นทาง XMNLP ให้ทำงานตามปกติ มีวิธีการกำหนดค่าสองวิธี
วิธีที่ 1: กำหนดค่าตัวแปรสภาพแวดล้อม (แนะนำ)
หลังจากรุ่นที่ดาวน์โหลดถูกบีบอัดคุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมเพื่อระบุที่อยู่รุ่น การใช้ระบบ Linux เป็นตัวอย่างการตั้งค่ามีดังนี้
export XMNLP_MODEL=/path/to/xmnlp-modelsวิธีที่ 2: การตั้งค่าผ่านฟังก์ชั่น
ตั้งค่าที่อยู่รุ่นก่อนโทร XMNLP ดังนี้
import xmnlp
xmnlp . set_model ( '/path/to/xmnlp-models' )
* ด้านบน /path/to/ เป็นเฉพาะสำหรับตัวยึด โปรดแทนที่ด้วยที่อยู่ไดเรกทอรีจริงของโมเดลเมื่อกำหนดค่า
การแบ่งส่วนคำภาษาจีน (ค่าเริ่มต้น) ขึ้นอยู่กับการจับคู่สูงสุดผกผัน Roberta + CRF ใช้สำหรับการจดจำคำใหม่
พารามิเตอร์:
ผลตอบแทนผลลัพธ์:
ตัวอย่าง:
> >> import xmnlp
> >> text = """xmnlp 是一款开箱即用的轻量级中文自然语言处理工具?。"""
> >> print ( xmnlp . seg ( text ))
[ 'xmnlp' , '是' , '一款' , '开箱' , '即用' , '的' , '轻量级' , '中文' , '自然语言' , '处理' , '工具' , '?' , '。' ]
การแบ่งส่วนคำตามการจับคู่สูงสุดย้อนกลับไม่รวมถึงการจดจำคำใหม่และเร็วขึ้น
พารามิเตอร์:
ผลตอบแทนผลลัพธ์:
ตัวอย่าง:
> >> import xmnlp
> >> text = """xmnlp 是一款开箱即用的轻量级中文自然语言处理工具?。"""
> >> print ( xmnlp . seg ( text ))
[ 'xmnlp' , '是' , '一款' , '开箱' , '即' , '用' , '的' , '轻量级' , '中文' , '自然语言' , '处理' , '工具' , '?' , '。' ]
ขึ้นอยู่กับรุ่น Roberta + CRF ความเร็วจะช้าลง ปัจจุบันอินเทอร์เฟซลึกรองรับภาษาจีนที่เรียบง่ายไม่ใช่ภาษาจีนดั้งเดิม
พารามิเตอร์:
ผลตอบแทนผลลัพธ์:
ตัวอย่าง:
> >> import xmnlp
> >> text = """xmnlp 是一款开箱即用的轻量级中文自然语言处理工具?。"""
> >> print ( xmnlp . deep_seg ( text ))
[ 'xmnlp' , '是' , '一款' , '开箱' , '即用' , '的' , '轻' , '量级' , '中文' , '自然' , '语言' , '处理' , '工具' , '?' , '。' ]
ส่วนหนึ่งของคำอธิบายประกอบการพูด
พารามิเตอร์:
ผลตอบแทนผลลัพธ์:
ตัวอย่าง:
> >> import xmnlp
> >> text = """xmnlp 是一款开箱即用的轻量级中文自然语言处理工具?。"""
> >> print ( xmnlp . tag ( text ))
[( 'xmnlp' , 'eng' ), ( '是' , 'v' ), ( '一款' , 'm' ), ( '开箱' , 'n' ), ( '即用' , 'v' ), ( '的' , 'u' ), ( '轻量级' , 'b' ), ( '中文' , 'nz' ), ( '自然语言' , 'l' ), ( '处理' , 'v' ), ( '工具' , 'n' ), ( '?' , 'x' ), ( '。' , 'x' )]
ขึ้นอยู่กับการจับคู่สูงสุดย้อนกลับไม่รวมการจดจำคำใหม่และเร็วขึ้น
พารามิเตอร์:
ผลตอบแทนผลลัพธ์:
ตัวอย่าง:
> >> import xmnlp
> >> text = """xmnlp 是一款开箱即用的轻量级中文自然语言处理工具?。"""
> >> print ( xmnlp . fast_tag ( text ))
[( 'xmnlp' , 'eng' ), ( '是' , 'v' ), ( '一款' , 'm' ), ( '开箱' , 'n' ), ( '即' , 'v' ), ( '用' , 'p' ), ( '的' , 'uj' ), ( '轻量级' , 'b' ), ( '中文' , 'nz' ), ( '自然语言' , 'l' ), ( '处理' , 'v' ), ( '工具' , 'n' ), ( '?' , 'x' ), ( '。' , 'x' )]
ขึ้นอยู่กับรุ่น Roberta + CRF ความเร็วจะช้าลง ปัจจุบันอินเทอร์เฟซลึกรองรับภาษาจีนที่เรียบง่ายไม่ใช่ภาษาจีนดั้งเดิม
พารามิเตอร์:
ผลตอบแทนผลลัพธ์:
ตัวอย่าง:
> >> import xmnlp
> >> text = """xmnlp 是一款开箱即用的轻量级中文自然语言处理工具?。"""
> >> print ( xmnlp . deep_tag ( text ))
[( 'xmnlp' , 'x' ), ( '是' , 'v' ), ( '一款' , 'm' ), ( '开箱' , 'v' ), ( '即用' , 'v' ), ( '的' , 'u' ), ( '轻' , 'nz' ), ( '量级' , 'b' ), ( '中文' , 'nz' ), ( '自然' , 'n' ), ( '语言' , 'n' ), ( '处理' , 'v' ), ( '工具' , 'n' ), ( '?' , 'w' ), ( '。' , 'w' )]สนับสนุนพจนานุกรมที่ผู้ใช้กำหนดรูปแบบพจนานุกรมคือ
词1 词性1
词2 词性2
ยังเข้ากันได้กับรูปแบบพจนานุกรมของ Jieba
词1 词频1 词性1
词2 词频2 词性2
หมายเหตุ: ตัวเว้นวรรคในบรรทัดด้านบนคือพื้นที่
ตัวอย่างการใช้งาน:
from xmnlp . lexical . tokenization import Tokenization
# 定义 tokenizer
# detect_new_word 定义是否识别新词,默认 True, 设为 False 时速度会更快
tokenizer = Tokenization ( user_dict_path , detect_new_word = True )
# 分词
tokenizer . seg ( texts )
# 词性标注
tokenizer . tag ( texts )
การจดจำร่างกายที่มีชื่อประเภทเอนทิตีที่สนับสนุนการรับรู้คือ:
พารามิเตอร์:
ผลตอบแทนผลลัพธ์:
ตัวอย่าง:
> >> import xmnlp
> >> text = "现任美国总统是拜登。"
> >> print ( xmnlp . ner ( text ))
[( '美国' , 'LOCATION' , 2 , 4 ), ( '总统' , 'JOB' , 4 , 6 ), ( '拜登' , 'PERSON' , 7 , 9 )]
แยกคำหลักจากข้อความขึ้นอยู่กับอัลกอริทึม TextTrank
พารามิเตอร์:
ผลตอบแทนผลลัพธ์:
ตัวอย่าง:
> >> import xmnlp
> >> text = """自然语言处理: 是人工智能和语言学领域的分支学科。
...: 在这此领域中探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的
...: 语言。
...: 自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化
...: 为计算机程序更易于处理的形式。"""
> >> print ( xmnlp . keyword ( text ))
[( '自然语言' , 2.3000579596585897 ), ( '语言' , 1.4734141257937314 ), ( '计算机' , 1.3747500999598312 ), ( '转化' , 1.2687686226652466 ), ( '系统' , 1.1171384775870152 ), ( '领域' , 1.0970728069617324 ), ( '人类' , 1.0192131829490039 ), ( '生成' , 1.0075197087342542 ), ( '认知' , 0.9327188339671753 ), ( '指' , 0.9218423928455112 )]
แยกประโยคคีย์จากข้อความขึ้นอยู่กับอัลกอริทึม TextTrank
พารามิเตอร์:
ผลตอบแทนผลลัพธ์:
ตัวอย่าง:
> >> import xmnlp
> >> text = """自然语言处理: 是人工智能和语言学领域的分支学科。
...: 在这此领域中探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的
...: 语言。
...: 自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化
...: 为计算机程序更易于处理的形式。"""
> >> print ( xmnlp . keyphrase ( text , k = 2 ))
[ '自然语言理解系统把自然语言转化为计算机程序更易于处理的形式' , '自然语言生成系统把计算机数据转化为自然语言' ]
การรับรู้ทางอารมณ์ขึ้นอยู่กับการฝึกอบรมคลังข้อมูลอีคอมเมิร์ซและเหมาะสำหรับการรับรู้ทางอารมณ์ในสถานการณ์อีคอมเมิร์ซ
พารามิเตอร์:
ผลตอบแทนผลลัพธ์:
ตัวอย่าง:
> >> import xmnlp
> >> text = "这本书真不错,下次还要买"
> >> print ( xmnlp . sentiment ( text ))
( 0.02727833203971386 , 0.9727216958999634 )
ข้อความถึงพินอิน
พารามิเตอร์:
ผลตอบแทนผลลัพธ์:
ตัวอย่าง:
> >> import xmnlp
> >> text = "自然语言处理"
> >> print ( xmnlp . pinyin ( text ))
[ 'Zi' , 'ran' , 'yu' , 'yan' , 'chu' , 'li' ]
แยกอนุมูล
พารามิเตอร์:
ผลตอบแทนผลลัพธ์:
ตัวอย่าง:
> >> import xmnlp
> >> text = "自然语言处理"
> >> print ( xmnlp . radical ( text ))
[ '自' , '灬' , '讠' , '言' , '夂' , '王' ]
การแก้ไขข้อผิดพลาดข้อความ
พารามิเตอร์:
ผลตอบแทนผลลัพธ์:
ตัวอย่าง:
> >> import xmnlp
> >> text = "不能适应体育专业选拔人材的要求"
> >> print ( xmnlp . checker ( text ))
{( 11 , '材' ): [( '才' , 1.58528071641922 ), ( '材' , 1.0009655653266236 ), ( '裁' , 1.0000178480604518 ), ( '员' , 0.35814568400382996 ), ( '士' , 0.011077565141022205 )]}ฟังก์ชันการเริ่มต้น SentenceVector
ต่อไปนี้เป็นฟังก์ชั่นสมาชิกสามคนของ SentenceVector
ตัวอย่างการใช้งาน
import numpy as np
from xmnlp . sv import SentenceVector
query = '我想买手机'
docs = [
'我想买苹果手机' ,
'我喜欢吃苹果'
]
sv = SentenceVector ( genre = '通用' )
for doc in docs :
print ( 'doc:' , doc )
print ( 'similarity:' , sv . similarity ( query , doc ))
print ( 'most similar doc:' , sv . most_similar ( query , docs ))
print ( 'query representation shape:' , sv . transform ( query ). shape )เอาท์พุท
doc: 我想买苹果手机
similarity: 0.68668646
doc: 我喜欢吃苹果
similarity: 0.3020076
most similar doc: [('我想买苹果手机', 16.255546509314417)]
query representation shape: (312,)
เวอร์ชันใหม่ไม่ได้จัดเตรียมอินเทอร์เฟซการประมวลผลแบบขนานที่สอดคล้องกันอีกต่อไปและต้องการการใช้ xmnlp.utils.parallel_handler เพื่อกำหนดอินเตอร์เฟสการประมวลผลแบบขนาน
อินเทอร์เฟซมีดังนี้:
xmnlp . utils . parallel_handler ( callback : Callable , texts : List [ str ], n_jobs : int = 2 , ** kwargs ) - > Generator [ List [ Any ], None , None ]ตัวอย่างการใช้งาน:
from functools import partial
import xmnlp
from xmnlp . utils import parallel_handler
seg_parallel = partial ( parallel_handler , xmnlp . seg )
print ( seg_parallel ( texts ))
รอคอยการมีส่วนร่วมของเพื่อนมากขึ้นในการสร้างเครื่องมือ NLP จีนที่เรียบง่ายและใช้งานง่าย
@ misc {
xmnlp ,
title = { XMNLP : A Lightweight Chinese Natural Language Processing Toolkit },
author = { Xianming Li },
year = { 2018 },
publisher = { GitHub },
howpublished = { url { https : // github . com / SeanLee97 / xmnlp }},
}
ฉันมุ่งมั่นที่จะวิจัยและดำเนินการ NLP และคำแนะนำของฉันรวมถึง: การสกัดข้อมูลการจำแนกอารมณ์ ฯลฯ
สำหรับความต้องการการใช้งาน NLP อื่น ๆ โปรดติดต่อ [email protected] (นี่คือบริการที่ชำระเงินและข้อบกพร่องที่เกี่ยวข้องกับ XMNLP สามารถรายงานได้โดยตรง)
ค้นหาบัญชีอย่างเป็นทางการ xmnlp-ai เพื่อติดตามเลือก "กลุ่มการสื่อสาร" ในเมนูเพื่อเข้าร่วมกลุ่ม
ข้อมูลที่ใช้ในโครงการนี้ส่วนใหญ่:
Apache 2.0
รุ่นส่วนใหญ่สร้างขึ้นบนพื้นฐานของ LangML