
XMNLP: une boîte à outils de traitement de la langue naturelle chinoise open source hors de la boîte
XMNLP: une boîte à outils de traitement du langage naturel extérieur à l'emplacement chinois
Installez la dernière version de XMNLP
pip install -U xmnlp
Les utilisateurs domestiques peuvent ajouter l'index-URL
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -U xmnlpAprès avoir installé le package, vous devez également télécharger les poids du modèle à utiliser normalement.
Veuillez télécharger la version correspondante du modèle XMNLP. Si vous n'êtes pas clair sur la version de XMNLP, vous pouvez exécuter python -c 'import xmnlp; print(xmnlp.__version__)' Pour afficher la version
| Nom du modèle | Version applicable | Adresse de téléchargement |
|---|---|---|
| xmnlp-onNx-models-v5.zip | v0.5.0, v0.5.1, v0.5.2, v0.5.3 | Feishu [igi] | Baidu Netdisk [L9ID] |
| xmnlp-onNX-modes-V4.zip | v0.4.0 | Feishu [dkla] | Baidu netdisk [j1qi] |
| xmnlp-onNX-modes-v3.zip | v0.3.2, v0.3.3 | Feishu [o4ba] | Baidu Netdisk [9G7E] |
Après avoir téléchargé le modèle, vous devez définir le chemin du modèle XMNLP pour s'exécuter normalement. Deux méthodes de configuration sont fournies
Méthode 1: Configurer les variables de l'environnement (recommandées)
Une fois le modèle téléchargé décompressé, vous pouvez définir la variable d'environnement pour spécifier l'adresse du modèle. Prenant l'exemple du système Linux, les paramètres sont les suivants
export XMNLP_MODEL=/path/to/xmnlp-modelsMéthode 2: Définition à travers les fonctions
Définissez l'adresse du modèle avant d'appeler XMNLP, comme suit
import xmnlp
xmnlp . set_model ( '/path/to/xmnlp-models' )
* Le ci-dessus /path/to/ est uniquement pour l'espace réservé. Veuillez le remplacer par la véritable adresse du répertoire du modèle lors de la configuration.
Segmentation chinoise des mots (par défaut), basée sur une correspondance maximale inverse, Roberta + CRF est utilisé pour la reconnaissance de nouveaux mots.
paramètre:
Le résultat renvoie:
Exemple:
> >> import xmnlp
> >> text = """xmnlp 是一款开箱即用的轻量级中文自然语言处理工具?。"""
> >> print ( xmnlp . seg ( text ))
[ 'xmnlp' , '是' , '一款' , '开箱' , '即用' , '的' , '轻量级' , '中文' , '自然语言' , '处理' , '工具' , '?' , '。' ]
La segmentation des mots basée sur la correspondance maximale inverse n'inclut pas la reconnaissance de nouveaux mots et est plus rapide.
paramètre:
Le résultat renvoie:
Exemple:
> >> import xmnlp
> >> text = """xmnlp 是一款开箱即用的轻量级中文自然语言处理工具?。"""
> >> print ( xmnlp . seg ( text ))
[ 'xmnlp' , '是' , '一款' , '开箱' , '即' , '用' , '的' , '轻量级' , '中文' , '自然语言' , '处理' , '工具' , '?' , '。' ]
Sur la base du modèle Roberta + CRF, la vitesse est plus lente. Actuellement, une interface profonde ne prend en charge que le chinois simplifié, et non le chinois traditionnel.
paramètre:
Le résultat renvoie:
Exemple:
> >> import xmnlp
> >> text = """xmnlp 是一款开箱即用的轻量级中文自然语言处理工具?。"""
> >> print ( xmnlp . deep_seg ( text ))
[ 'xmnlp' , '是' , '一款' , '开箱' , '即用' , '的' , '轻' , '量级' , '中文' , '自然' , '语言' , '处理' , '工具' , '?' , '。' ]
Partie de l'annotation de la parole.
paramètre:
Le résultat renvoie:
Exemple:
> >> import xmnlp
> >> text = """xmnlp 是一款开箱即用的轻量级中文自然语言处理工具?。"""
> >> print ( xmnlp . tag ( text ))
[( 'xmnlp' , 'eng' ), ( '是' , 'v' ), ( '一款' , 'm' ), ( '开箱' , 'n' ), ( '即用' , 'v' ), ( '的' , 'u' ), ( '轻量级' , 'b' ), ( '中文' , 'nz' ), ( '自然语言' , 'l' ), ( '处理' , 'v' ), ( '工具' , 'n' ), ( '?' , 'x' ), ( '。' , 'x' )]
Sur la base d'une correspondance maximale inverse, elle n'inclut pas de nouvelle reconnaissance de mots et est plus rapide.
paramètre:
Le résultat renvoie:
Exemple:
> >> import xmnlp
> >> text = """xmnlp 是一款开箱即用的轻量级中文自然语言处理工具?。"""
> >> print ( xmnlp . fast_tag ( text ))
[( 'xmnlp' , 'eng' ), ( '是' , 'v' ), ( '一款' , 'm' ), ( '开箱' , 'n' ), ( '即' , 'v' ), ( '用' , 'p' ), ( '的' , 'uj' ), ( '轻量级' , 'b' ), ( '中文' , 'nz' ), ( '自然语言' , 'l' ), ( '处理' , 'v' ), ( '工具' , 'n' ), ( '?' , 'x' ), ( '。' , 'x' )]
Sur la base du modèle Roberta + CRF, la vitesse est plus lente. Actuellement, une interface profonde ne prend en charge que le chinois simplifié, et non le chinois traditionnel.
paramètre:
Le résultat renvoie:
Exemple:
> >> 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' )]Prise en charge du dictionnaire défini par l'utilisateur, le format du dictionnaire est
词1 词性1
词2 词性2
Également compatible avec le format dictionnaire de Jieba participe
词1 词频1 词性1
词2 词频2 词性2
Remarque: l'espaceur dans la ligne ci-dessus est l'espace
Exemple d'utilisation:
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 )
Nommé la reconnaissance corporelle, les types d'entités qui soutiennent la reconnaissance sont:
paramètre:
Le résultat renvoie:
Exemple:
> >> import xmnlp
> >> text = "现任美国总统是拜登。"
> >> print ( xmnlp . ner ( text ))
[( '美国' , 'LOCATION' , 2 , 4 ), ( '总统' , 'JOB' , 4 , 6 ), ( '拜登' , 'PERSON' , 7 , 9 )]
Extraire les mots clés du texte, basé sur l'algorithme TextTrank.
paramètre:
Le résultat renvoie:
Exemple:
> >> 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 )]
Extraire les phrases clés du texte, en fonction de l'algorithme TextTrank.
paramètre:
Le résultat renvoie:
Exemple:
> >> import xmnlp
> >> text = """自然语言处理: 是人工智能和语言学领域的分支学科。
...: 在这此领域中探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的
...: 语言。
...: 自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化
...: 为计算机程序更易于处理的形式。"""
> >> print ( xmnlp . keyphrase ( text , k = 2 ))
[ '自然语言理解系统把自然语言转化为计算机程序更易于处理的形式' , '自然语言生成系统把计算机数据转化为自然语言' ]
La reconnaissance émotionnelle est basée sur la formation du corpus de revue électronique et convient à la reconnaissance émotionnelle dans les scénarios de commerce électronique.
paramètre:
Le résultat renvoie:
Exemple:
> >> import xmnlp
> >> text = "这本书真不错,下次还要买"
> >> print ( xmnlp . sentiment ( text ))
( 0.02727833203971386 , 0.9727216958999634 )
Texte à pinyin
paramètre:
Le résultat renvoie:
Exemple:
> >> import xmnlp
> >> text = "自然语言处理"
> >> print ( xmnlp . pinyin ( text ))
[ 'Zi' , 'ran' , 'yu' , 'yan' , 'chu' , 'li' ]
Extraire des radicaux texte
paramètre:
Le résultat renvoie:
Exemple:
> >> import xmnlp
> >> text = "自然语言处理"
> >> print ( xmnlp . radical ( text ))
[ '自' , '灬' , '讠' , '言' , '夂' , '王' ]
Correction d'erreur de texte
paramètre:
Le résultat renvoie:
Exemple:
> >> import xmnlp
> >> text = "不能适应体育专业选拔人材的要求"
> >> print ( xmnlp . checker ( text ))
{( 11 , '材' ): [( '才' , 1.58528071641922 ), ( '材' , 1.0009655653266236 ), ( '裁' , 1.0000178480604518 ), ( '员' , 0.35814568400382996 ), ( '士' , 0.011077565141022205 )]}Fonction d'initialisation du vecteur de phrase
Voici les trois fonctions membres de la phrase Vector
Exemple d'utilisation
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 )Sortir
doc: 我想买苹果手机
similarity: 0.68668646
doc: 我喜欢吃苹果
similarity: 0.3020076
most similar doc: [('我想买苹果手机', 16.255546509314417)]
query representation shape: (312,)
La nouvelle version ne fournit plus l'interface de traitement parallèle correspondante et nécessite l'utilisation de xmnlp.utils.parallel_handler pour définir l'interface de traitement parallèle.
L'interface est la suivante:
xmnlp . utils . parallel_handler ( callback : Callable , texts : List [ str ], n_jobs : int = 2 , ** kwargs ) - > Generator [ List [ Any ], None , None ]Exemple d'utilisation:
from functools import partial
import xmnlp
from xmnlp . utils import parallel_handler
seg_parallel = partial ( parallel_handler , xmnlp . seg )
print ( seg_parallel ( texts ))
Dans l'attente des contributions de plus d'amis pour créer un outil NLP chinois simple et facile à utiliser
@ 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 }},
}
Je m'engage à rechercher et à mettre en œuvre la PNL, et mes instructions incluent: l'extraction d'informations, la classification émotionnelle, etc.
Pour d'autres besoins de mise en œuvre de la PNL, veuillez contacter [email protected] (il s'agit d'un service payant, et les bogues liés à XMNLP peuvent être directement signalés)
Recherchez le compte officiel xmnlp-ai à suivre, sélectionnez "Communication Group" dans le menu pour rejoindre le groupe.
Les données utilisées dans ce projet sont principalement:
Apache 2.0
La plupart des modèles sont construits sur Langml