python programmation de base: Python issus du traitement du langage naturel, les formes de mots et expliquer le code de l'algorithme de correspondance maximum

Ce document met l'accent sur éraflage et lemmatisation et algorithme de correspondance maximum et exemples de code sont introduits, la mise en œuvre Python, nous allons jeter un coup d'oeil au contenu spécifique.

traitement du langage naturel est une opération très importante est connue comme éraflage et lemmatisation, à la fois très similaire. Ils sont deux mots forme importante de manière standardisée, sont en mesure d'atteindre l'objectif de fusionner efficacement la forme de texte, les deux les deux connexions sont différentes.

1, issu (résultant,)

定义: Stemmingistheprocessforreducinginflected (orsometimesderived) wordstotheirstem, baseorrootform-generallyawrittenwordform.

Expliquer, Découlant est d'extraire la tige, ou sous forme de racine du mot (pas nécessairement exprimer la sémantique complète).

NLTK fournit trois plus une interface commune issue, à savoir Porterstemmer, LancasterStemmer et SnowballStemmer.

Extraction PorterStemmer Porter issue algorithme, des exemples de regard

>>> from nltk.stem.porter import PorterStemmer 
>>> porter_stemmer = PorterStemmer() 
>>> porter_stemmer.stem(‘maximum') 
u'maximum'
>>> porter_stemmer.stem(‘presumably') 
u'presum'
>>> porter_stemmer.stem(‘multiply') 
u'multipli'
>>> porter_stemmer.stem(‘provision') 
u'provis'
>>> porter_stemmer.stem(‘owed') 
u'owe'

Stemmer Lancaster algorithme d'extraction des tiges, des exemples de regard

>>> from nltk.stem.lancaster import LancasterStemmer 
>>> lancaster_stemmer = LancasterStemmer() 
>>> lancaster_stemmer.stem(‘maximum') 
‘maxim' 
>>> lancaster_stemmer.stem(‘presumably') 
‘presum' 
>>> lancaster_stemmer.stem(‘presumably') 
‘presum' 
>>> lancaster_stemmer.stem(‘multiply') 
‘multiply' 
>>> lancaster_stemmer.stem(‘provision') 
u'provid'
>>> lancaster_stemmer.stem(‘owed') 
‘ow'

Stemmer boule de neige boule de neige algorithme d'extraction des tiges, des exemples de regard

>>> from nltk.stem import SnowballStemmer 
>>> snowball_stemmer = SnowballStemmer(“english”) 
>>> snowball_stemmer.stem(‘maximum') 
u'maximum'
>>> snowball_stemmer.stem(‘presumably') 
u'presum'
>>> snowball_stemmer.stem(‘multiply') 
u'multipli'
>>> snowball_stemmer.stem(‘provision') 
u'provis'
>>> snowball_stemmer.stem(‘owed') 
u'owe'

2, Lemmatisation (lemmatisation)

Définitions: lemmatisation (orlemmatization) inlinguistics, istheprocessofgroupingtogetherthedifferentinflectedformsofawordsotheycanbeanalysedasasingleitem.

Visible, Lemmatisation toute forme de langage en une réduction de la forme générale de mots (pour exprimer la sémantique complètes). En revanche, résultant de façon simple de fusion des formes de mots légers, le résultat final est obtenu tige, ne pas nécessairement une signification pratique. processus lemmatisation est relativement complexe, les résultats obtenus pour le prototype du mot, capable de porter un certain sens, par rapport à égrappage, plus de recherche et d'application.

Nous allons donner un exemple plus complexe de se combiner avec l'algorithme MaxMatch plus tard.

Introduit pour endiguer et lemmatisation et différences ici:

Lemmatisation (lemmatisation), est une réduction sous une forme quelconque d'une forme de mot de langue générale (capable d'exprimer une sémantique complète), et découlant

(Égrappage,) est la suppression de la tige, ou sous forme de racine du mot (pas nécessairement capable d'exprimer une sémantique complète). Lemmatisation et mot forme est issue catégories normalisée

de façon importante, sont en mesure d'atteindre l'objectif de fusionner efficacement la forme de texte, il existe des différences entre les deux deux connexions

Contacter avec l'entreprise commune et résumées dans les quatre domaines suivants:

(1) l'unité de but. Éraflage et cible lemmatisation sera simplifiée ou sont fusionnés dans la tige (STEM) formes morphologie ou dérivées flexions du mot

Ou prototype sous forme de base, est un processus d'unification des différentes formes de mots fusionnés.

(2) Résultats de section transversale. Éraflage et lemmatisation pas une relation mutuellement exclusive, à la suite d'une croix. Une partie de mot utiliser ces deux méthodes pour obtenir le même mot forme des effets de transition. Tels que mot « chiens »

Séchez comme « chien », qui est aussi le prototype du « chien ».

Similaire (3) la mise en œuvre grand public. À l'heure actuelle réalisation éraflage et lemmatisation mise en œuvre du grand public utilisent les règles de la langue ou l'utilisation de la tige d'extrait de cartographie dictionnaire existant, ou obtenir le prototype de mot.

(4) applications similaires. Principalement utilisé dans la recherche d'information et le texte, le traitement du langage naturel, ces deux applications sont les étapes de base

La différence est résumée dans les cinq domaines suivants:

(1) En principe, résultant principalement selon la méthode « réduit » convertira le mot à la tige, comme les « chats » traités comme « chat », le « efficace » pour le traitement « effet ». Le Lemmatisation principalement une « transition »

Le procédé, le mot dans sa forme d'origine, comme cela « ai conduit » considéré comme « lecteur », le « moteur » traité comme « drive ».

(2) dans la complexité, la méthode issue est relativement simple, le principe des formes de mots doivent également retourner le prototype de mot, la nécessité d'une analyse morphologique, non seulement pour fixer la transformation, mais aussi pour la reconnaissance vocale, mais de distinguer la même forme de mot

Les différences de mots différents prototypes. POS précision de marquage d'un impact direct sur l'exactitude des lemmatisation, donc lemmatisation plus complexe.

(3) sur la mise en œuvre, bien que découlant méthode traditionnelle et lemmatisation mise en œuvre similaire, mais ont mis l'accent sur la mise en œuvre spécifique. La mise en œuvre provenant principalement effectuée en utilisant les règles changent affixe le retrait et la réduction de la simplification que du mot. Forme mot principe aussi des changements morphologiques relativement complexes compliquée,, tout simplement pas bien fait selon les règles. Ce qui est plus dépendante du dictionnaire, infléchi et prototype de cartographie, générer un dictionnaire de mot valide.

(4) sur les résultats issus lemmatisation et aussi quelques différences. les résultats découlant peuvent ne pas être complète, avec le sens des mots, mais seulement une partie du mot, comme « revival » découlant résultat est « Reviv », « ailiner » résultat issu est « lign ». Le résultat après lemmatisation obtenu par le procédé est un certain sens, un mot complet, le mot est généralement efficace dans le dictionnaire.

(5) sur le champ d'application, nous avons le même objectif. Bien que l'on utilise les deux dans la recherche d'information et de traitement de texte, mais un accent différent. Découlant plus est appliquée dans le domaine de la recherche d'information, tels que Solr, Lucene comme, recherche élargie pour la taille de gros grain. Lemmatisation plus important d'être utilisé dans l'extraction de texte, traitement du langage naturel, pour l'analyse de texte plus à grains fins, plus précis et d'expression

En revanche, résultant de façon simple de fusion des formes de mots légers, le résultat final est obtenu tige, ne pas nécessairement une signification pratique. processus lemmatisation est relativement complexe, les résultats obtenus pour le prototype du mot, capable de porter un certain sens, par rapport à égrappage, plus de recherche et de l'application

3, l'algorithme d'adaptation maximale (MaxMatch)

MaxMatch dans l'algorithme de traitement du langage naturel chinois souvent utilisé pour mot (peut-être du nom que vous pouvez penser qu'il stratégie déjà avide est une conception basée sur un algorithme). En règle générale, entre chaque mot anglais dans le vocabulaire de division par un espace, ce qui est très simple, mais les Chinois n'ont pas traversal. Par exemple, «J'aime République de Chine populaire », cette phrase est le résultat de la segmentation peut être si { « moi », « amour », « la Chine », « peuple », « République »}, {ou est le « je », « amour », « République de Chine populaire »}, évidemment, nous préférons résultat de la segmentation de ce dernier. Parce que « République de Chine populaire » est évidemment un nom propre (mettre un tel point de vue de la segmentation des mots est évidemment pas sage) les. Nous avons choisi cette dernière stratégie est la soi-disant MaxMatch, à savoir le match maximum. Parce que les « gens de République de Chine » est nettement mieux que le mot « Chine », « le peuple », « République » Ces mots sont longs.

Nous pouvons démontrer par exemple un algorithme MaxMatch English (En fait, il est le traitement chinois est le même). Algorithme réduit progressivement de la bonne longueur de la chaîne, la chaîne pour obtenir la longueur maximale du match. En tenant compte du vocabulaire que nous avons obtenu peut contenir une certaine variation du type de mot, donc l'utilisation d'un lemmatisation, puis chercher des correspondances dans le dictionnaire des synonymes.

from nltk.stem import WordNetLemmatizer 
from nltk.corpus import words 
  
wordlist = set(words.words()) 
wordnet_lemmatizer = WordNetLemmatizer() 
  
def max_match(text): 
  pos2 = len(text) 
  result = '' 
  while len(text) > 0:     
    word = wordnet_lemmatizer.lemmatize(text[0:pos2]) 
    if word in wordlist: 
      result = result + text[0:pos2] + ' '
      text = text[pos2:] 
      pos2 = len(text) 
    else: 
      pos2 = pos2-1        
  return result[0:-1]

Pour examiner l'effet de la mise en œuvre de l'algorithme

>>> string = 'theyarebirds'
>>> print(max_match(string)) 
they are birds

Bien sûr, le code ci-dessus est encore une pénurie, qui est, quand il y a un caractère non alphabétique dans la chaîne (par exemple la ponctuation numérique, etc.), il peut y avoir des problèmes. Les lecteurs intéressés voudront peut-être essayer et raffiné version améliorée de cette prise de conscience lui-même.

Enfin, je recommande une bonne réputation collecte de python [ Cliquer ici pour entrer ], il y a beaucoup de voitures anciennes compétences d' apprentissage, l' expérience d' apprentissage, les techniques d'entrevue, l' expérience en milieu de travail et d' autres part, plus nous avons soigneusement préparé les informations d' introduction à base zéro sur les données réelles du projet méthode, chaque jour programmeurs Python expliquer le timing de la technologie, apprendre à partager quelques petits détails doivent faire attention et
résumé

C'est tout pour cet article tiges Python sur le traitement du langage naturel, la morphologie et MaxMatch expliquent le code de l'algorithme

Publié 20 articles originaux · a gagné les éloges 4 · vues 20000 +

Je suppose que tu aimes

Origine blog.csdn.net/haoxun11/article/details/104930868
conseillé
Classement