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

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

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

1. Brève introduction

2. Principe de mise en œuvre

3. Questions nécessitant une attention particulière

4. Aperçu de l'effet

5. Étapes de mise en œuvre

6. Code clé

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 :

  1. 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.

  2. 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.

  3. 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.

  4. 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 :

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

HanLP GitHub: GitHub - hankcs/HanLP: Chinese Word SegmentationPart-of-Speech TagNamed Entity RecognitionDépendanceAnalyse syntaxiqueComposantAnalyse de la syntaxeAnalyse de dépendance sémantiqueÉtiquetage des rôles sémantiquesRésolution de référenceConversion de styleSimilitude sémantiqueDécouverte de nouveaux motsExtraction d'expressions de mots clésRésumé automatiqueClassification de texteClusteringConversion simplifiée et traditionnelle en pinyin Traitement du langage naturel

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, Termle naturechamp de l'objet représente la partie du discours

Dans HanLP, le champ Termde l'objet naturerepré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 commun
    • nr: nom
    • ns: nom de lieu
    • nt: Nom de l'organisation
    • nz: autres noms propres
    • nl: nom idiome
    • ng: nom morphème
  • classe de temps :

    • t: mot de temps
  • Verbes:

    • v:verbe
    • vd: Adverbe
    • vn: verbe substantif
    • vshi: verbe être"
    • vyou: verbe avoir"
  • Classe d'adjectifs :

    • a:adjectif
    • ad: adverbe
  • Classe d'adverbes :

    • d:adverbe
  • Classe de pronoms :

    • r:pronom
    • rr:Pronom personnel
    • rz:Démonstratif
    • rzt: temps pronom démonstratif
  • Classe de conjonction :

    • c:conjonction
  • Classe de particules :

    • u:particule
  • Classe numérique :

    • m:numéral
  • Classe de quantificateur :

    • q:quantificateur
  • Parties du discours:

    • y:Modal
  • Classe d'interjection :

    • e:interjection
  • Onomatopée:

    • o:Onomatopée
  • Partie du discours:

    • f:Position du mot
  • Partie statut du discours :

    • z: mot d'état
  • Classe de préposition :

    • p:préposition
  • Classe de préfixe :

    • h: préfixe
  • Classe de suffixe :

    • k:suffixe
  • Classe de ponctuation :

    • w: ponctuation

Veuillez 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.

Je suppose que tu aimes

Origine blog.csdn.net/u014361280/article/details/132348575
conseillé
Classement