Tri simple du traitement de la segmentation des mots (y compris le traitement des attributs de mots) à l'aide de HanLP dans Android d'Android Studio
Table des matières
3. Questions nécessitant une attention particulière
Annexe : Dans HanLP, le champ nature de l'objet Term indique la partie du discours
1. Brève introduction
Certaines opérations de base du développement Android sont triées pour une utilisation ultérieure.
Cette section explique comment utiliser HanLP pour effectuer le traitement de segmentation des mots (y compris le traitement des attributs de mots) des paragraphes de phrases dans Android.
Sur la plate-forme Android, en plus de HanLP, il existe d'autres algorithmes et outils qui peuvent être utilisés pour la segmentation des mots chinois. Voici quelques algorithmes de segmentation de mots chinois courants et certains avantages de HanLP dans la segmentation de mots :
Algorithmes et outils courants de segmentation des mots chinois :
ansj_seg : ansj_seg est un outil de segmentation de mots chinois basé sur le modèle CRF et HMM, adapté à la plate-forme Java. Il prend en charge la segmentation des mots à grain fin et à grain grossier, et dispose de certaines fonctions de dictionnaire personnalisé et de balisage des parties du discours.
jieba : jieba est une bibliothèque de segmentation de mots chinois largement utilisée en Python, mais possède également sa version Java. Il utilise une méthode de segmentation de mots basée sur un dictionnaire de préfixes et fonctionne bien en termes de vitesse et d'effet.
lucene-analyzers-smartcn : il s'agit d'un tokenizer chinois dans le projet Apache Lucene, utilisant un algorithme de segmentation de mots basé sur des règles. Il est largement utilisé dans le moteur de recherche Lucene.
ictclas4j : ictclas4j est un outil de segmentation de mots chinois développé par l'Institute of Computing Technology, Chinese Academy of Sciences, basé sur le modèle HMM. Il prend en charge les dictionnaires personnalisés et le balisage des parties du discours.
Avantages de la segmentation de mots HanLP :
Applicabilité multi-domaines : HanLP est conçu comme une boîte à outils de traitement du langage naturel chinois multi-domaines, qui inclut non seulement la segmentation des mots, mais prend également en charge diverses tâches telles que le balisage des parties du discours, la reconnaissance des entités nommées et l'analyse de la syntaxe des dépendances.
Performance et effet : HanLP a été formé et optimisé sur plusieurs ensembles de données standard, et a un bon effet et de bonnes performances de segmentation des mots.
Prise en charge flexible des dictionnaires : HanLP prend en charge les dictionnaires personnalisés et vous pouvez ajouter du vocabulaire dans les domaines professionnels selon vos besoins pour améliorer la segmentation des mots.
Open Source : HanLP est open source, vous pouvez l'utiliser, le modifier et le distribuer librement, ce qui facilite la personnalisation et l'intégration dans vos projets.
Prise en charge multilingue : HanLP prend non seulement en charge le chinois, mais prend également en charge d'autres langues, telles que l'anglais, le japonais, etc., ce qui facilite le traitement multilingue.
Communauté active : HanLP dispose d'une communauté active et d'une équipe de maintenance qui aide à la résolution de problèmes et à l'assistance.
En un mot, HanLP est un outil de traitement du langage naturel chinois riche en fonctionnalités et performant, qui convient à divers scénarios d'application, en particulier dans les tâches de traitement de texte multi-domaines. Cependant, le choix final dépend de vos besoins spécifiques et du contexte du projet.
Site officiel de HanLP : HanLP | Démo en ligne
2. Principe de mise en œuvre
1. Utilisez StandardTokenizer.segment(text) pour transmettre le texte Contenu textuel pour la segmentation des mots
2. Utilisez Term.word; pour obtenir le contenu du participe et Term.nature.toString() pour obtenir les attributs du participe
3. Questions nécessitant une attention particulière
1. Les mots chinois auront un attribut correspondant plus précis, mais les mots anglais peuvent ne pas
4. Aperçu de l'effet
5. Étapes de mise en œuvre
1. Ouvrez Android Studio pour créer un projet vide et introduisez HanLP dans build.gradle
implémentation 'com.hankcs:hanlp:portable-1.7.5' Rappelez-vous Sync nNow
2. Créez le script ChineseSegmentationExample pour réaliser la fonction de segmentation de mots
3. Appelez-le dans le script principal et saisissez le contenu à segmenter
4. Emballez et exécutez sur la machine Android, l'effet est comme ci-dessus
6. Code clé
1、Exemple de segmentation chinoise
package com.xxxx.testchinesesegmentationexample;
import com.hankcs.hanlp.seg.common.Term;
import com.hankcs.hanlp.tokenizer.StandardTokenizer;
import java.util.List;
public class ChineseSegmentationExample {
/**
* 分词
* @param wordsContent 要进行分词的内容
*/
public static void SegmentWords(String wordsContent) {
String text = wordsContent;
// 进行分词
List<Term> terms = StandardTokenizer.segment(text);
// 遍历分词结果,判断词性并打印
for (Term term : terms) {
String word = term.word;
String pos = term.nature.toString();
String posInfo = getPosInfo(pos); // 判断词性属性
System.out.println("Word: " + word + ", POS: " + pos + ", Attribute: " + posInfo);
}
}
/**
* 判断词性属性
* @param pos
* @return 属性
*/
static String getPosInfo(String pos) {
// 这里你可以根据需要添加更多的判断逻辑来确定词性属性
if (pos.equals("n")) {
return "名词";
} else if (pos.equals("v")) {
return "动词";
} else if (pos.equals("ns")) {
return "地名";
}else if (pos.equals("t")) {
return "时间";
}
else {
return "其他";
}
}
}
2、Activité principale
ackage com.xxxxx.testchinesesegmentationexample;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ChineseSegmentationExample.SegmentWords("现在几号,几点钟,今天明天后天昨天北京深圳的天气如何。");
}
}
Addendum : dans HanLP, Term
le nature
champ de l'objet représente la partie du discours
Dans HanLP, le champ
Term
de l'objetnature
représente la partie du discours (POS). HanLP utilise un système standard d'étiquetage des parties du discours chinois, et chaque partie du discours a un identifiant unique. Voici quelques balises de partie du discours chinoises courantes et leurs significations :
classe de noms :
n
: nom communnr
: nomns
: nom de lieunt
: Nom de l'organisationnz
: autres noms propresnl
: nom idiomeng
: nom morphèmeclasse de temps :
t
: mot de tempsVerbes:
v
:verbevd
: Adverbevn
: verbe substantifvshi
: verbe être"vyou
: verbe avoir"Classe d'adjectifs :
a
:adjectifad
: adverbeClasse d'adverbes :
d
:adverbeClasse de pronoms :
r
:pronomrr
:Pronom personnelrz
:Démonstratifrzt
: temps pronom démonstratifClasse de conjonction :
c
:conjonctionClasse de particules :
u
:particuleClasse numérique :
m
:numéralClasse de quantificateur :
q
:quantificateurParties du discours:
y
:ModalClasse d'interjection :
e
:interjectionOnomatopée:
o
:OnomatopéePartie du discours:
f
:Position du motPartie statut du discours :
z
: mot d'étatClasse de préposition :
p
:prépositionClasse de préfixe :
h
: préfixeClasse de suffixe :
k
:suffixeClasse de ponctuation :
w
: ponctuationVeuillez noter que ce qui précède ne sont que quelques balises de partie du discours courantes et leurs significations, et la situation réelle peut être plus compliquée. Vous pouvez consulter la documentation HanLP pour plus de détails sur le balisage des parties du discours si nécessaire. Sur la base de ces balises de partie du discours, vous pouvez écrire du code pour évaluer les attributs des mots (tels que les verbes, les noms, les noms de lieu, etc.) et effectuer le traitement correspondant.