Maison > développement back-end > Tutoriel Python > Exemples de traitement du langage naturel en Python : segmentation de mots

Exemples de traitement du langage naturel en Python : segmentation de mots

王林
Libérer: 2023-06-09 22:01:45
original
1334 Les gens l'ont consulté

Le langage Python est l'un des langages de programmation les plus populaires aujourd'hui, et sa puissante boîte à outils de traitement du langage naturel est également devenue son avantage unique. Le traitement du langage naturel (NLP) constitue une direction de recherche importante dans le domaine de l’intelligence artificielle et offre de larges perspectives d’application. Cet article présentera principalement l'un des exemples de traitement du langage naturel en Python : la segmentation des mots.

La tokenisation est une tâche fondamentale dans le traitement du langage naturel. Son but est de segmenter un morceau de texte en unités de vocabulaire significatives, telles que des mots et des signes de ponctuation en anglais, un mot et des mots en chinois, etc. La segmentation des mots est la première étape du traitement du langage naturel et constitue également la base de tâches telles que le marquage de parties du discours, la reconnaissance d'entités nommées et l'analyse des sentiments qui seront mises en œuvre à l'étape suivante.

Il existe de nombreux outils de segmentation de mots couramment utilisés en Python, tels que nltk, spacy et jieba. Dans cet article, nous présentons principalement l'utilisation de l'outil de segmentation de mots jieba couramment utilisé.

Tout d’abord, nous devons installer l’outil de segmentation de mots jieba. Exécutez simplement la commande suivante :

!pip install jieba
Copier après la connexion

Une fois l'installation terminée, nous pouvons effectuer une segmentation de mots sur le texte. Supposons que nous ayons un texte chinois :

text = "自然语言处理是人工智能领域的一个重要方向,其目的是让计算机能够理解自然语言及其含义。"
Copier après la connexion

Nous pouvons utiliser la méthode cut() de jieba pour le segmenter en mots. L'exemple de code est le suivant : cut()方法将其分词,示例代码如下:

import jieba

text = "自然语言处理是人工智能领域的一个重要方向,其目的是让计算机能够理解自然语言及其含义。"
seg_list = jieba.cut(text, cut_all=False)

print(" ".join(seg_list))
Copier après la connexion

cut()方法接受两个参数,第一个参数为待分词的文本内容,第二个参数cut_all表示是否采用全模式分词(即全部切分出可行的词语),如果不指定,默认为False,表示采用精确模式分词。

代码运行结果如下所示:

自然语言 处理 是 人工智能 领域 的 一个 重要 方向 , 其 目的 是 让 计算机 能够 理解 自然语言 及 其 含义 。
Copier après la connexion

在这个例子中,我们可以看到,jieba分词将文本正确地分割成了一个个有意义的词语单元。同时,我们也可以通过调用jieba.cut()方法的不同参数完成其他的分词操作:

  • cut() 方法返回的是一个生成器,可以直接使用 for 循环迭代输出分词结果;
  • cut_for_search() 方法是一个混合模式分词器,既可以精确分词,又可以扫描出文本中所有可能是词语的组合;
  • lcut()lcut_for_search() 方法将返回一个列表类型的分词结果。

除此之外,jieba分词工具还支持自定义词典,可以增加分词的准确率。例如,我们可以定义一个包含领域相关术语的词典,命名为newdict.txt,并调用jieba分词器的load_userdict()

import jieba

# 加载自定义词典
jieba.load_userdict("newdict.txt")

text = "自然语言处理是人工智能领域的一个重要方向,其目的是让计算机能够理解自然语言及其含义。"
seg_list = jieba.cut(text, cut_all=False)

print(" ".join(seg_list))
Copier après la connexion
Le cut()code> accepte deux paramètres, le premier paramètre est le contenu du texte à segmenter, le deuxième paramètre <code>cut_all indique s'il faut utiliser la segmentation de mots en mode complet (c'est-à-dire que tous les mots réalisables sont segmentés), sinon spécifié, la valeur par défaut est False, indiquant qu'une segmentation précise des mots en mode est utilisée.

Le résultat de l'exécution du code est le suivant : 🎜rrreee🎜Dans cet exemple, nous pouvons voir que la segmentation des mots jieba segmente correctement le texte en unités de mots significatives. Parallèlement, nous pouvons également réaliser d'autres opérations de segmentation de mots en appelant différents paramètres de la méthode jieba.cut() : 🎜
  • cut() La méthode renvoie un générateur qui peut utiliser directement une boucle for pour générer de manière itérative les résultats de la segmentation des mots ;
  • cut_for_search() La méthode est un segmenteur de mots en mode mixte qui peut segmenter les mots avec précision ; et scanner le texte Toutes les combinaisons possibles de mots ; les méthodes
  • lcut() et lcut_for_search() renverront un type de liste de résultats de segmentation de mots.
🎜De plus, l'outil de segmentation de mots Jieba prend également en charge les dictionnaires personnalisés, ce qui peut augmenter la précision de la segmentation des mots. Par exemple, nous pouvons définir un dictionnaire contenant des termes liés au domaine, le nommer newdict.txt et appeler la méthode load_userdict() du segmenteur de mots Jieba pour charger le dictionnaire personnalisé. : 🎜 rrreee🎜Grâce à cet exemple simple, nous avons appris à utiliser l'outil de segmentation de mots jieba pour le traitement du langage naturel en Python. La segmentation des mots est l'une des tâches fondamentales de la PNL. La maîtrise de l'utilisation de la technologie de segmentation des mots est également très importante pour réaliser d'autres tâches complexes de la PNL. Grâce à un apprentissage et à une pratique continus, je pense que tout le monde peut mieux maîtriser la technologie de traitement du langage naturel Python et fournir une meilleure aide pour le traitement de diverses données textuelles. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal