Formulaire de contact

 

Segmentation des textes chinois (épisode 2 -- Test, évaluation et discussions)


Segmentation des textes chinois
(épisode 2 -- Test, évaluation et discussions)




PLAN

IV TEST
V EVALUATION
VI CONCLUSION
REFERENCES

PREAMBULE

Dans le blog précédent, nous avons parlé du contexte, des enjeux, d’algorithmes et d’outils de la segmentation des textes chinois. Dans ce blog, nous continuerons les parties du test, de l’évaluation et des discussions.

IV TEST

Dans cette partie, nous présenterons le test outil par outil.

Le texte à tester (texte-test) sera précisé dans la Partie V Evaluation.

Environment de test

CPU

ThinkPad-T440p:~$ cat /proc/cpuinfo | grep 'name' | cut -f2 -d: | uniq
 Intel(R) Core(TM) i7-4710MQ CPU @ 2.50GHz

GPU

ThinkPad-T440p:~$ lspci | grep -i 'vga' | cut -f3 -d:
 Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
 NVIDIA Corporation GK208M [GeForce GT 730M] (rev a1)


Mémoire

ThinkPad-T440p:~$ cat /proc/meminfo | grep -i "memtotal" | cut -f2 -d:
       16307404 kB


Système

ThinkPad-T440p:~$ uname -a
Linux ThinkPad-T440p 4.10.0-38-generic #42~16.04.1-Ubuntu SMP Tue Oct 10 16:32:20 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux


4.1 Stanford word segmenter

4.1.1 Préparation

Le système demande une version de Java supérieure à 6.

####Téléchargement (> 200Mo)
wget https://nlp.stanford.edu/software/stanford-segmenter-2017-06-09.zip | unzip

4.1.2 Test

avec lignes de commande

####Test
##Fichier d'entrée: chaque ligne comporte une phrase
##Préciser l'encodage obligatoire : nom du jeu de caractères connu par Java
##Option 0 : la meilleure hypothèse sans probabilités

####avec le modèle Chinese Penn Treebank standard (ctb)
./stanford-segmenter-2017-06-09/segment.sh ctb text_test UTF-8 0 > result_std_ctb
####avec le modèle Pekin University standard(pku)
./stanford-segmenter-2017-06-09/segment.sh pku text_test UTF-8 0 > result_std_pku

4.2 Jieba (bégayer)

Nous avons testé son module en python2.

4.2.1 Préparation


####Installation
pip install jieba

4.2.2 Test

test_jieba.py

# encoding: utf-8
#####test_jieba.py

import jieba

myFile = open("text_test", "r")

myResult = open("result_jieba", "w")
result = jieba.cut(myFile.read())
myResult.write("/".join(result).encode('utf-8'))

myFile.close()

4.3 NLPIR / ICTCLA

Nous avons testé son module en python2.

Note : Il faut renouveler manuellement le fichier d’authorisation chaque mois.


4.3.1 Préparation


####Installation
pip install pynlpir

4.4.2 Test

test_pynlpir.py

# encoding: utf-8
#####test_pynlpir.py
import pynlpir
pynlpir.open()

myFile = open("text_test", "r")
myResult = open("result_pynlpir", "w")

result = pynlpir.segment(myFile.read(), pos_tagging=False)
myResult.write("/".join(result).encode('utf-8'))

myFile.close()
myResult.close()


4.4 LTP (Language Technology Platform)

Nous avons testé son module en python2.

4.4.1 Préparation


##Téléchargement tout d'abord du modèle (> 600Mo)
wget http://ospm9rsnd.bkt.clouddn.com/model/ltp_data_v3.4.0.zip |unzip
####Installation

##Installer le wrapper de ltp en python
pip install pyltp

4.4.2 Test

test_ltp.py


# encoding: utf-8
#####test_ltp.py

import os
LTP_DATA_DIR = '/home/yizhou/NLPTools/ltp_data_v3.4.0'
cws_model_path = os.path.join(LTP_DATA_DIR, 'cws.model')

import pyltp
segmentor = pyltp.Segmentor()
segmentor.load(cws_model_path)

myFile = open("text_test", "r")
myResult = open("result_ltp", "w")

result = segmentor.segment(myFile.read())
myResult.write("/".join(result))

segmentor.release() 
myFile.close()
myResult.close()


4.5 THULAC (THU Lexical Analyzer for Chinese)

4.5.1 Préparation


####Installation
sudo pip install thulac

4.5.2 Test

test_thulac.py


# encoding: utf-8
#####test_thulac.py
import thulac

myFile = open("text_test", "r")
myResult = open("result_thulac", "w")

result = thulac.thulac(seg_only=True, deli='/')
result.cut_f("text_test", "result_thulac") 

myFile.close()
myResult.close()


4.6 KCWS (Deep learning Chinese word segment)

Malheuresement, nous ne sommes pas parvenus à entraîner notre modèle. Nous aurions utilisé le tensorflow avec GPU support au lieu de simple CPU support.

4.6.1 Préparation

Cela nécessite une grande installation : 1) bazel (outil de construire et test) ; 2) tensorflow (outil d’apprentissage automatique) ; 3) installer kcws ; et 4) le construire avec bazel

1) bazel


##Téléchargement de l'installeur binaire (> 124Mo)
wget https://github.com/bazelbuild/bazel/releases/download/0.4.5/bazel-0.4.5-installer-linux-x86_64.sh
#### Installer
chmod +x bazel-0.4.5-installer-linux-x86_64.sh
./bazel-0.4.5-installer-linux-x86_64.sh --user
####set environment
export PATH="$PATH:$HOME/bin"
export PATH="$PATH:~/.bashrc"


2) tensorflow

#https://www.tensorflow.org/install/install_linux
sudo apt-get install python-virtualenv
virtualenv --system-site-packages tensorflow
source ~/tensorflow/bin/activate
pip install --upgrade tensorflow

####chaque fois qu'on utilise tensorflow, il faut l'activer
$source ~/tensorflow/bin/activate
####il faut le désactiver après l'utilisation
(tensorflow)$ deactivate


3) kcws


git clone https://github.com/koth/kcws
cd kcws
./configue

4) installer le backend API avec bazel

bazel build kcws/cc:seg_backend_api


4.6.2 Test

Il faut demander le corpus annoté auprès de l’auteur et l’entraîner par soi-même.

Nous avons obtenu le corpus (basé sur le journal du peuple 2014, taille après être décompressé : 189Mo).


##nettoyer les etiquettes
~/NLPTools/kcws/train$ python process_anno_file.py ~/NLPData pre_chars_for_w2v.txt 
total:871371, long lines:82606

##Construire l'outil de word2vec
~/NLPTools/kcws$ bazel build third_party/word2vec:word2vec
## obtenir la liste de mots (préminaire)
~/NLPTools/kcws$ ./bazel-bin/third_party/word2vec/word2vec -train kcws/train/pre_chars_for_w2v.txt -save-vocab pre_vocab.txt -min-count 3
Starting training using file kcws/train/pre_chars_for_w2v.txt
Vocab size: 6073
Words in train file: 36923633

##traîter les mots peu fréquentss
~/NLPTools/kcws$ python kcws/train/replace_unk.py pre_vocab.txt kcws/train/pre_chars_for_w2v.txt chars_for_w2v.txt

##entraîner word2vec
~/NLPTools/kcws$ ./bazel-bin/third_party/word2vec/word2vec -train chars_for_w2v.txt -output vec.txt -size 50 -sample 1e-4 -negative 5 -hs 1 -binary 0 -iter 5
Starting training using file chars_for_w2v.txt
Vocab size: 5691
Words in train file: 36923908
Alpha: 0.000005  Progress: 100.00%  Words/thread/sec: 85.91k

##Construire l'outil d'entrainement
~/NLPTools/kcws$ bazel build kcws/train:generate_training

##transformer le texte de corpus en vectors et les annoter
~/NLPTools/kcws$ ./bazel-bin/kcws/train/generate_training vec.txt ~/NLPData all.txt
got dim:50
total:871371, long lines:79556, chars:26750593

##Préparer le corpus d'entrainement et le corpus de test (80% : 20%)
##obtenir train.txt (276Mo) et test.txt
~/NLPTools/kcws$ python kcws/train/filter_sentence.py all.txt

##entrainer le corpus et exporter le model au format pbtxt
## Le programme exécutait 4 heures et avait seulement fini une petite proportion du corpus d'entrainement (276 Mo)
## On l'a donc forcé à terminer.
~/NLPTools/kcws$ python kcws/train/train_cws.py --word2vec_path vec.txt --train_data_path ~/NLPTools/kcws/train.txt --test_data_path test.txt --max_sentence_len 80 --learning_rate 0.001

(tensorflow) :~/NLPTools/kcws$ python kcws/train/train_cws.py --word2vec_path vec.txt --train_data_path ~/NLPTools/kcws/train.txt --test_data_path test.txt --max_sentence_len 80 --learning_rate 0.001


Ce résultat temporaire montre que la précision de l'entraînement atteint à 95.7%. Il s'agissait d'une petite proportion du corpus d'entraînement, ce qui avait déjà utilisé 4 heures d'exécution. Nous l'avons forcé à terminer. 

4.7 SWCS (Simple Chinese word segmentation)

4.7.1 Préparation


####Installation
wget -q -O - http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2 | tar xjf -
sudo  ./configure --prefix=$HOME/NLPTools/scws
make
make install

###Téléchargement du dictionnaire
wget http://www.xunsearch.com/scws/down/scws-dict-chs-utf8.tar.bz2 -P $HOME/scws/etc
tar xvjf $HOME/scws/etc/scws-dict-chs-utf8.tar.bz2


4.7.2 Test


####TESTER
$HOME/scws/bin/scws -i ./text_test -c utf8 -o result_scws -d $HOME/scws/etc/dict.utf8.xdb


V EVALUATION

5.1 Méthodes

Nous aimerons évaluer des outils quantitativement. Il faut préciser l'échantillon, le golden standard et les critères de mesure.

5.1.1 Echantillon

Il faut choisir un échantillon pour tester tous les outils.

Notre corpus sont basés sur des données journalistiques. Nous avons donc extrait une partie d'un article de nos sources et éliminé toutes les signes de ponctuations. (Nous avons modifié la longueur dans la phase suivante.)

5.1.2 Golden standard

Pour évaluer un outil, il faut établir un standard d'or, qui est accepté par tout le monde. Normalement, il s'agit d'une segmentation manuelle.

Nous avons donc segmenté manuellement notre échantillon selon la "Contemporary Chinese language word segmentation specification for information processing".
Nous avons au total 200 segments (200 mots) pour faciliter notre calcul.


随着/人工智能/和/机器学习/的/发展/机器人/越来越多/地/承担/起/更加/重要/的/工作/如/外科手术/自动驾驶/战场/作战/甚至/能/决定/人类/的/生死/那么/我们/能/信赖/机器人/吗/
按/大众/对/机器人/的/理解/它们/要么/是/近乎/完美/的/忠诚/管家/要么/是/精神/变态/的/狡诈/杀手/就像/星球大战/里/的/c3po/机械/姬/里/的/艾娃/禁闭/行星/里/的/罗比/或/太空/漫游/里/的/哈尔/虽说/这些/描写/只不过/反映/了/人类/自己/的/希望/和/恐惧/但/至少/这些/恐惧/已/开始/进入/现实/
近年来/许多/科技界/名人/表达/了/他们/对/人工智能/横行/世界/的/忧虑/拥有/超级/智能/的/机器人/建立/了/一个/新世界/人类/不再/是/这个/新世界/里/的/主角/他们/被/奴役/杀戮/甚至/灭绝/这些/恐怖/场景/和/几十年/前/科幻/小说家/们/幻想/的/差别/不大/却/引起/了/人们/的/广泛/关注/甚至/包括/斯蒂芬/霍金/比尔/盖茨/埃隆/马斯克/等/科技/名人/
人类/和/机器/正/形成/一种/新的/关系/在/不久/的/将来/我们/会/开始/对/那些/具有/高度/自主性/完全/自动化/的/机器人/系统/委以重任/如/驾驶/汽车/执行/手术/甚至/在/战争/中/选择/何时/使用/致命性/


5.1.3 Critères de mesure

La Précision (P), le rappel (R) et la F-mesure (F) sont les 3 critères majeures pour évaluer la performance d'un système de recherche d'information. En même temps, on peut également calculer le taux d'erreurs (ER).

La précision compte la proportion d'items pertinents parmi les items sélectionnés ; le rappel compte la proportion d'items pertinents sélectionnés parmi tous les items pertinents sélectionnables.

La F-mesure est la moyenne harmonique de la précision et le rappel. La précision, le rappel et la f-mesure d'un segmenteur idéal sont égaux à 1, alors que le taux d'erreur vaut 0.

Pour mieux illustrer et calculer ces critères, définissons des variables suivantes :

N : nombre de mots du "golden standard", (dans notre cas, une variable constante qui vaut 200)
e : nombre de mots mal segmentés
c : nombre de mots correctement segmentés

Obtenons les formules infra :

    R = c / N
    P = c / (c + e)
    F = 2 x P x R / (P + R)
    ER = e / N

5.2 Résultats et discussions

Nous avons nettoyé et formatté des fichiers de sortie pour faciliter la comparaison.


Std(cpb)

随着/人工/智能/和/机器/学习/的/发展/机器人/越来越/多/地/承担/起/更加/重要/的/工作/如/外科/手术/自动/驾驶/战场/作战/甚至/能/决定/人类/的/生死/那么/我们/能/信赖/机器人/吗/
按/大众/对/机器人/的/理解/它们/要么/是/近乎/完美/的/忠诚/管家/要么/是/精神/变态/的/狡诈/杀手/就/像/星球/大战/里/的/c3po/机械/姬里/的/艾娃/禁闭/行星/里/的/罗比或/太空/漫游/里/的/哈尔/虽说/这些/描写/只/不过/反映/了/人类/自己/的/希望/和/恐惧/但/至少/这些/恐惧/已/开始/进入/现实/
近年/来/许多/科技界/名人/表达/了/他们/对/人工/智能/横行/世界/的/忧虑/拥有/超级/智能/的/机器人/建立/了/一/个/新/世界/人类/不再/是/这个/新/世界/里/的/主角/他们/被/奴役/杀戮/甚至/灭绝/这些/恐怖/场景/和/几十/年/前/科幻/小说/家们/幻想/的/差别/不/大/却/引起/了/人们/的/广泛/关注/甚至/包括/斯蒂芬/霍金/比尔盖茨/埃隆/马斯克/等/科技/名人/
人类/和/机器/正/形成/一/种/新/的/关系/在/不久/的/将来/我们/会/开始/对/那些/具有/高度/自主性/完全/自动化/的/机器人/系统/委以/重任/如/驾驶/汽车/执行/手术/甚至/在/战争/中/选择/何时/使用/致命性/武器

Std(pku)

随着/人工智能/和/机器/学习/的/发展/机器人/越来越/多/地/承担/起/更加/重要/的/工作/如/外科/手术/自动/驾驶/战场/作战/甚至/能/决定/人类/的/生死/那么/我们/能/信赖/机器人/吗/
按/大众/对/机器人/的/理解/它们/要么/是/近乎/完美/的/忠诚/管家/要么/是/精神/变态/的/狡诈/杀手/就/像/星球大战/里/的/c3po/机械/姬/里/的/艾/娃/禁闭/行星/里/的/罗/比/或/太空/漫游/里/的/哈尔/虽说/这些/描写/只不过/反映/了/人类/自己/的/希望/和/恐惧/但/至少/这些/恐惧/已/开始/进入/现实/
近年来/许多/科技界/名人/表达/了/他们/对/人工/智能/横行/世界/的/忧虑/拥有/超级/智能/的/机器人/建立/了/一个/新/世界/人类/不再/是/这个/新/世界/里/的/主角/他们/被/奴役/杀戮/甚至/灭绝/这些/恐怖/场景/和/几十/年/前/科幻小说家/们/幻想/的/差别/不大/却/引起/了/人们/的/广泛/关注/甚至/包括/斯蒂芬/霍/金/比尔盖茨/埃/隆/马斯克/等/科技/名人/
人类/和/机器/正形/成/一/种/新/的/关系/在/不久/的/将来/我们/会/开始/对/那些/具有/高度/自主性/完全/自动化/的/机器人/系统/委以重任/如/驾驶/汽车/执行/手术/甚至/在/战争/中/选择/何时/使用/致命性/武器

Jieba


随着/人工智能/和/机器/学习/的/发展/机器人/越来越/多/地/承担/起/更加/重要/的/工作/如/外科/手术/自动/驾驶/战场/作战/甚至/能/决定/人类/的/生死/那么/我们/能/信赖/机器人/吗/
按/大众/对/机器人/的/理解/它们/要么/是/近乎/完美/的/忠诚/管家/要么/是/精神/变态/的/狡诈/杀手/就/像/星球大战/里/的/c3po/机械/姬/里/的/艾/娃/禁闭/行星/里/的/罗/比/或/太空/漫游/里/的/哈尔/虽说/这些/描写/只不过/反映/了/人类/自己/的/希望/和/恐惧/但/至少/这些/恐惧/已/开始/进入/现实/
近年来/许多/科技界/名人/表达/了/他们/对/人工/智能/横行/世界/的/忧虑/拥有/超级/智能/的/机器人/建立/了/一个/新/世界/人类/不再/是/这个/新/世界/里/的/主角/他们/被/奴役/杀戮/甚至/灭绝/这些/恐怖/场景/和/几十/年/前/科幻小说家/们/幻想/的/差别/不大/却/引起/了/人们/的/广泛/关注/甚至/包括/斯蒂芬/霍/金/比尔盖茨/埃/隆/马斯克/等/科技/名人/
人类/和/机器/正形/成/一/种/新/的/关系/在/不久/的/将来/我们/会/开始/对/那些/具有/高度/自主性/完全/自动化/的/机器人/系统/委以重任/如/驾驶/汽车/执行/手术/甚至/在/战争/中/选择/何时/使用/致命性/武器


NLPIR / ICTCLA



随着/人工智能/和/机器/学习/的/发展/机器人/越来越/多/地/承担/起/更加/重要/的/工作/如/外科/手术/自动/驾驶/战场/作战/甚至/能/决定/人类/的/生死/那么/我们/能/信赖/机器人/吗/
按/大众/对/机器人/的/理解/它们/要么/是/近乎/完美/的/忠诚/管家/要么/是/精神/变态/的/狡诈/杀手/就/像/星球/大战/里/的/c3po/机械/姬/里/的/艾娃/禁闭/行星/里/的/罗/比/或/太空/漫游/里/的/哈尔/虽说/这些/描写/只不过/反映/了/人类/自己/的/希望/和/恐惧/但/至少/这些/恐惧/已/开始/进入/现实/
近年来/许多/科技界/名人/表达/了/他们/对/人工智能/横行/世界/的/忧虑/拥有/超级/智能/的/机器人/建立/了/一个/新/世界/人类/不再/是/这个/新/世界/里/的/主角/他们/被/奴役/杀戮/甚至/灭绝/这些/恐怖/场景/和/几十/年/前/科幻/小说/家/们/幻想/的/差别/不/大/却/引起/了/人们/的/广泛/关注/甚至/包括/斯蒂芬霍金比尔盖茨埃隆马斯克/等/科技/名人/
人类/和/机器/正/形成/一/种/新/的/关系/在/不久/的/将来/我们/会/开始/对/那些/具有/高度/自主性/完全/自动化/的/机器人/系统/委以重任/如/驾驶/汽车/执行/手术/甚至/在/战争/中/选择/何时/使用/致命/性



LTP (language technology platform)

随着/人工智能/和/机器/学习/的/发展/机器人/越来越/多/地/承担/起/更加/重要/的/工作/如/外科/手术/自动/驾驶/战场/作战/甚至/能/决定/人类/的/生死/那么/我们/能/信赖/机器人/吗/
按/大众/对/机器人/的/理解/它们/要么/是/近乎/完美/的/忠诚/管家/要么/是/精神/变态/的/狡诈/杀手/就/像/星球/大战/里/的/c3po/机械姬/里/的/艾娃/禁闭/行星/里/的/罗比/或/太空/漫游/里/的/哈尔/虽说/这些/描写/只不过/反映/了/人类/自己/的/希望/和/恐惧/但/至少/这些/恐惧/已/开始/进入/现实/
近年来/许多/科技界/名人/表达/了/他们/对/人工智能/横行/世界/的/忧虑/拥有/超级/智能/的/机器人/建立/了/一个/新/世界/人类/不再/是/这个/新/世界/里/的/主角/他们/被/奴役/杀戮/甚至/灭绝/这些/恐怖/场景/和/几十/年/前/科幻/小说家/们/幻想/的/差别/不/大/却/引起/了/人们/的/广泛/关注/甚至/包括/斯蒂芬/霍金/比尔盖茨埃隆马斯克/等/科技/名人/
人类/和/机器/正/形成/一/种/新/的/关系/在/不久/的/将来/我们/会/开始/对/那些/具有/高度/自主性/完全/自动化/的/机器人/系统/委以/重任/如/驾驶/汽车/执行/手术/甚至/在/战争/中/选择/何时/使用/致命性


THULAC (THU Lexical anlayzer for Chinese)

随着/人工智能/和/机器/学习/的/发展/机器人/越/来/越/多/地/承担/起/更加/重要/的/工作/如/外科/手术/自动/驾驶/战场/作战/甚至/能/决定/人类/的/生死那/么/我们/能/信赖/机器人/吗/
按/大众/对/机器人/的/理解/它们/要/么/是/近乎/完美/的/忠诚/管/家/要/么/是/精神/变态/的/狡诈/杀手/就/像/星球/大战/里/的/c3/p/o/机械姬/里/的/艾娃/禁/闭行星/里/的/罗/比/或/太空/漫游/里/的/哈/尔/虽说/这些/描写/只/不/过/反映/了/人类/自己/的/希望/和/恐惧/但/至少/这些/恐惧/已/开始/进入/现实/
近年/来/许多/科技界/名人/表达/了/他们/对/人工智能/横行/世界/的/忧虑/拥有/超级智能/的/机器人/建立/了/一个/新/世界/人类/不/再/是/这个/新/世界/里/的/主角/他们/被/奴役/杀戮/甚至/灭绝/这些/恐怖/场景/和/几十/年/前/科幻/小说/家/们/幻想/的/差别/不/大/却/引起/了/人们/的/广泛/关注/甚至/包括/斯蒂芬/霍金/比尔盖茨埃隆马斯克/等/科技/名人/
人类/和/机器/正/形成/一/种/新/的/关系/在/不/久/的/将/来/我们/会/开始/对/那些/具有/高度/自主性/完全/自动化/的/机器人/系统/委以重任/如/驾驶/汽车/执行/手术/甚至/在/战争/中/选择/何时/使用/致命性


SWCS (Simple Chinese word segmentation)


随着/人工智能/和/机器/学习/的/发展/机器人/越来/越多/地/承担/起/更加/重要/的/工作/如/外科/手术/自动/驾驶/战场/作战/甚至/能/决定/人类/的/生死/那么/我们/能/信赖/机器人/吗/
按/大众/对/机器人/的/理解/它们/要么/是/近乎/完美/的/忠诚/管家/要么/是/精神/变态/的/狡诈/杀手/就/像/星球大战/里/的/c3po/机械/姬/里/的/艾娃/禁闭/行星/里/的/罗比/或/太空/漫游/里/的/哈尔/虽说/这些/描写/只不过/反映/了/人类/自己/的/希望/和/恐惧/但/至少/这些/恐惧/已/开始/进入/现实/
近年来/许多/科技界/名人/表达/了/他们/对/人工智能/横行/世界/的/忧虑/拥有/超级/智能/的/机器人/建立/了/一个/新世界/人类/不再/是/这个/新世界/里/的/主角/他们/被/奴役/杀戮/甚至/灭绝/这些/恐怖/场景/和/几十/年前/科幻/小说家/们/幻想/的/差别/不大/却/引起/了/人们/的/广泛/关注/甚至/包括/斯蒂芬/霍金/比尔/盖茨/埃隆/马斯克/等/科技/名人/
人类/和/机器/正/形成/一/种/新/的/关系/在/不久/的/将来/我们/会/开始/对/那些/具有/高度/自主性/完全/自动化/的/机器人/系统/委以重任/如/驾驶/汽车/执行/手术/甚至/在/战争/中/选择/何时/使用/致命性/武器/


Diagramme de performance globale



Diagramme des taux d'erreurs



Selon les diagrammes supra, SCWS et Jieba sont les deux meilleurs outils. Mais après avoir comparé manuellement les résultats obtenus avec notre golden standard, et examiné les fonctionnalités des outils, nous avons constaté que notre système d’évaluation n’était pas tout à fait fiable, car

       1) les « information granules » sont différentes, c’est-à-dire que les outils ont un choix entre minimum matching et maximum matching (cf le blog précédant, partie algorithmes)

ex
中华人民共和国
pinyin : zhōng huá rén mín gòng hé guó
traduction fr : République populaire de Chine

segmentation 1
中华/人民/共和国
pinyin : zhōng huá/ rén míngòng hé guó
traduction littérale (mot-à-mot) : Chine / peuple / République

segmentation 2
On ne le segmente pas, on l’enregistre dans le dictionnaire.

L’exemple montre que des choix de « granule » provoquent des différences importantes, à savoir que la première segmentation a 3 tokens, tandis que la seconde en a 1 seul. Si l’on a manipulé un corpus de grande taille, cet écart serait significatif.

« granule » petite : std word segmenter
« granule » moyenne : ltp
« granule » modifiable : SCWS, Jieba, NLPIR

       2) Certains outils ont fait par défaut la reconnaissance des entités nommées(NER), mais d’autres non. Cela complique la statistique.

ex
比尔·盖茨
Bill Gates

En chinois, les noms des personnes occidentaux s’écrivent avec un · entre chaque partie. Certains outils ont regroupé ce nom comme un seul token, mais certains était plus prudents, ils ont spéraré des noms (dans cet exemple, en deux tokens : prénom / nom). Cela est lié aussi au choix de « granule ».

3) dictionnaire

Certains outils (ltp, swcs, nlpir, jieba, )permettent aux utilisateurs d’entrer des néologismes dans le dictionnaire. Il est logique qu’un dictionnaire exhaustif fonctionne beaucoup mieux, mais, n’oublions jamais le coût (temps, mémoire). Le choix serait le résultat d’un compromis entre ces critères.

CONCLUSION

Ce test des outils de manière rustique avait pour but d’en trouver un puissant pour notre projet. Mais, nous ne pouvons pas arbitrairement évaluer ou choisir tel ou tel outil sans le mettre en pratique. Il convient de prendre en compte toutes les contraintes de notre travail.

Bibliographies et Références

孙茂松王洪君李行健富丽黄昌宁陈松岑, ... & 张卫国. (2001). 信息处理用现代汉语分词词表语言文字应用, 4, 84-89. (The Guideline of constructinga wordlist of Contemporary Chinese for information processing )  
刘源谭强, & 沈旭昆. (1994). 信息处理用现代汉语分词规范及自动分词方法清华大学出版社. (Contemporary Chinese language wordsegmentation specification for information processing and methods of automaticsegmentation)   
龙树全赵正文, & 唐华. (2009). 中文分词算法概述电脑知识与技术学术交流, 5(4), 2605-2607. (Brief review on Chinese segmentation algorithms)

Huihsin Tseng, Pichuan Chang, Galen Andrew, Daniel Jurafsky and Christopher Manning. 2005. A Conditional Random Field Word Segmenter. In Fourth SIGHAN Workshop on Chinese Language Processing.
Maosong Sun, Xinxiong Chen, Kaixu Zhang, Zhipeng Guo, Zhiyuan Liu. THULAC: An Efficient Lexical Analyzer for Chinese. 2016.
Zhongguo Li, Maosong Sun. Punctuation as Implicit Annotations for Chinese Word Segmentation. Computational Linguistics, vol. 35, no. 4, pp. 505-512, 2009.
Mysore, S., Kim, E., Strubell, E., Liu, A., Chang, H. S., Kompella, S., ... & Olivetti, E. (2017). Automatically Extracting Action Graphs from Materials Science Synthesis Procedures. arXiv preprint arXiv:1711.06872.
Lample, G., Ballesteros, M., Subramanian, S., Kawakami, K., & Dyer, C. (2016). Neural architectures for named entity recognition. arXiv preprint arXiv:1603.01360.




Total comment

Auteurs

AI_PLURITAL

1   commentaires

très intéressant travail d'exploration et de comparaison des outils...

SF

Cancel Reply