Table des matières
Tagueur de parties du discours
corpus d'annotation
représente l'identifiant annoté : nltk.tag.str2tuple('word/类型')
Lire le corpus annoté
noms, verbes, adjectifs, etc.
Essayez de trouver le nom le plus fréquent de chaque type de nom
Explorez le corpus annoté
Marquage automatique
Tagger par défaut
Tagger d'expression régulière
Tageur de requêtes
Maison développement back-end Tutoriel Python Apprentissage NLTK : classer et annoter le vocabulaire

Apprentissage NLTK : classer et annoter le vocabulaire

Jun 23, 2017 pm 03:33 PM
nltk 学习 标注 笔记

[TOC]

Tagueur de parties du discours

De nombreuses tâches ultérieures nécessitent des mots balisés. nltk est livré avec un annotateur anglais pos_tag

import nltk
text = nltk.word_tokenize("And now for something compleyely difference")print(text)print(nltk.pos_tag(text))
Copier après la connexion

corpus d'annotation

représente l'identifiant annoté : nltk.tag.str2tuple('word/类型')

text = "The/AT grand/JJ is/VBD ."print([nltk.tag.str2tuple(t) for t in text.split()])
Copier après la connexion

Lire le corpus annoté

nltk corpus ue nombril fournit une interface unifiée, vous n'avez donc pas à vous soucier des différents formats de fichiers. Format : 语料库.tagged_word()/tagged_sents(). Les paramètres peuvent spécifier des catégories et des champs

print(nltk.corpus.brown.tagged_words())
Copier après la connexion

noms, verbes, adjectifs, etc.

Ici, nous prenons les noms comme exemple

from nltk.corpus import brown
word_tag = nltk.FreqDist(brown.tagged_words(categories="news"))print([word+'/'+tag for (word,tag)in word_tag if tag.startswith('V')])################下面是查找money的不同标注#################################wsj = brown.tagged_words(categories="news")
cfd = nltk.ConditionalFreqDist(wsj)print(cfd['money'].keys())
Copier après la connexion

Essayez de trouver le nom le plus fréquent de chaque type de nom

def findtag(tag_prefix,tagged_text):
    cfd = nltk.ConditionalFreqDist((tag,word) for (word,tag) in tagged_text if tag.startswith(tag_prefix))return dict((tag,list(cfd[tag].keys())[:5]) for tag in cfd.conditions())#数据类型必须转换为list才能进行切片操作tagdict = findtag('NN',nltk.corpus.brown.tagged_words(categories="news"))for tag in sorted(tagdict):print(tag,tagdict[tag])
Copier après la connexion

Explorez le corpus annoté

nécessite nltk.bigrams() et nltk.trigrams(), qui correspondent respectivement au modèle 2 grammes et au modèle 3 grammes.

brown_tagged = brown.tagged_words(categories="learned")
tags = [b[1] for (a,b) in nltk.bigrams(brown_tagged) if a[0]=="often"]
fd = nltk.FreqDist(tags)
fd.tabulate()
Copier après la connexion

Marquage automatique

Tagger par défaut

Le tagger le plus simple est pour chaque identifiant. Les identifiants se voient attribuer un uniforme balises. Vous trouverez ci-dessous un tagger qui transforme tous les mots en NN. Et utilisez evaluate() pour vérifier. Cela facilite la première analyse et améliore la stabilité lorsque de nombreux mots sont des noms.

brown_tagged_sents = brown.tagged_sents(categories="news")

raw = 'I do not like eggs and ham, I do not like them Sam I am'tokens = nltk.word_tokenize(raw)
default_tagger = nltk.DefaultTagger('NN')#创建标注器print(default_tagger.tag(tokens)) # 调用tag()方法进行标注print(default_tagger.evaluate(brown_tagged_sents))
Copier après la connexion

Tagger d'expression régulière

Notez que les règles ici sont fixes (à votre propre discrétion). À mesure que les règles deviennent de plus en plus complètes, la précision augmente.

patterns = [
    (r'.*ing$','VBG'),
    (r'.*ed$','VBD'),
    (r'.*es$','VBZ'),
    (r'.*','NN')#为了方便,只有少量规则]
regexp_tagger = nltk.RegexpTagger(patterns)
regexp_tagger.evaluate(brown_tagged_sents)
Copier après la connexion

Tageur de requêtes

Il y a une différence entre ceci et le livre C'est différent de python2. Le tagger de requête stocke les balises les plus probables et peut définir le paramètre backoff Si la balise ne peut pas être marquée, utilisez ce tagger (ce processus est de secours )

<. 🎜>
fd = nltk.FreqDist(brown.words(categories="news"))
cfd = nltk.ConditionalFreqDist(brown.tagged_words(categories="news"))##############################################python2和3的区别#########most_freq_words = fd.most_common(100)
likely_tags = dict((word,cfd[word].max()) for (word,times) in most_freq_words)#######################################################################baseline_tagger = nltk.UnigramTagger(model=likely_tags,backoff=nltk.DefaultTagger(&#39;NN&#39;))
baseline_tagger.evaluate(brown_tagged_sents)
Copier après la connexion

Annotation N-gram

Annotateur unaire de base

L'annotateur unaire se comporte de manière très similaire à l'annotateur de recherche, techniques de construction d'annotateurs unaires, formé pour

.
Ici notre annotateur mémorise uniquement l'ensemble d'entraînement au lieu de construire un modèle général, donc l'accord est très bon, mais il ne peut pas être généralisé à de nouveaux textes.

size = int(len(brown_tagged_sents)*0.9)
train_sents = brown_tagged_sents[:size]
test_sents = brown_tagged_sents[size+1:]
unigram_tagger = nltk.UnigramTagger(train_sents)
unigram_tagger.evaluate(test_sents)
Copier après la connexion
Tagger N-gram général

Tagger N-gram consiste à récupérer le mot avec index = n et à récupérer n -N< ;=index<=n-1 balise. Autrement dit, la balise du mot actuel est en outre déterminée par la balise du mot précédent. Semblable à

, l'annotateur binaire intégré est : nltk.UnigramTagger() a le même usage. nltk.BigramTagger()

Taggers combinés

Souvent, un algorithme avec une couverture plus large est plus utile qu'un algorithme avec une plus grande précision. Utilisez

pour spécifier backoff pour utiliser l'annotateur de secours pour réaliser la combinaison d'annotateurs. Si le paramètre est explicitement déclaré comme type int, les contextes qui n'apparaissent qu'une à n fois seront automatiquement supprimés. cutoff

t0 = nltk.DefaultTagger(&#39;NN&#39;)
t1 = nltk.UnigramTagger(train_sents,backoff=t0)
t2 = nltk.BigramTagger(train_sents,backoff=t1)
t2.evaluate(test_sents)
Copier après la connexion
On peut constater qu'après comparaison avec l'original, la précision est considérablement améliorée

Annotation des limites de phrases croisées

Pour Le mot au début de la phrase n'a pas les n premiers mots. Solution : Entraînez le tagueur avec les tagg_sents étiquetés.


Annotation basée sur la transformation : l'annotateur Brill

est supérieur à celui ci-dessus. L'idée de mise en œuvre : commencer par un grand coup, puis corriger les détails, et apporter des modifications détaillées petit à petit.

Non seulement cela prend une petite quantité de mémoire, mais il est également contextuel et corrige les erreurs en temps réel à mesure que le problème devient plus petit plutôt que statique. Bien entendu, les appels sont différents en python3 et python2.

from nltk.tag import brill
brill.nltkdemo18plus()
brill.nltkdemo18()
Copier après la connexion

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment supprimer les notes Xiaohongshu Comment supprimer les notes Xiaohongshu Mar 21, 2024 pm 08:12 PM

Comment supprimer les notes de Xiaohongshu ? Les notes peuvent être modifiées dans l'application Xiaohongshu. La plupart des utilisateurs ne savent pas comment supprimer les notes de Xiaohongshu. Ensuite, l'éditeur propose aux utilisateurs des images et des textes expliquant comment supprimer les notes de Xiaohongshu. un regard ensemble ! Tutoriel d'utilisation de Xiaohongshu Comment supprimer les notes de Xiaohongshu 1. Ouvrez d'abord l'application Xiaohongshu et entrez dans la page principale, sélectionnez [Moi] dans le coin inférieur droit pour accéder à la zone spéciale 2. Ensuite, dans la zone Ma, cliquez sur la page de note comme suit : indiqué ci-dessous, sélectionnez la note que vous souhaitez supprimer ; 3. Accédez à la page de notes, cliquez sur [trois points] dans le coin supérieur droit ; 4. Enfin, la barre de fonctions s'agrandira en bas, cliquez sur [Supprimer] pour terminer.

Apprenez à désinstaller complètement pip et à utiliser Python plus efficacement Apprenez à désinstaller complètement pip et à utiliser Python plus efficacement Jan 16, 2024 am 09:01 AM

Plus besoin de pip ? Venez apprendre à désinstaller pip efficacement ! Introduction : pip est l'un des outils de gestion de packages Python, qui peut facilement installer, mettre à niveau et désinstaller les packages Python. Cependant, nous devrons parfois désinstaller pip, peut-être parce que nous souhaitons utiliser un autre outil de gestion de packages, ou parce que nous devons vider complètement l'environnement Python. Cet article explique comment désinstaller pip efficacement et fournit des exemples de code spécifiques. 1. Méthodes de désinstallation de pip Ce qui suit présente deux méthodes courantes de désinstallation de pip.

Que dois-je faire si les notes que j'ai publiées sur Xiaohongshu sont manquantes ? Quelle est la raison pour laquelle les notes qu'il vient d'envoyer sont introuvables ? Que dois-je faire si les notes que j'ai publiées sur Xiaohongshu sont manquantes ? Quelle est la raison pour laquelle les notes qu'il vient d'envoyer sont introuvables ? Mar 21, 2024 pm 09:30 PM

En tant qu'utilisateur de Xiaohongshu, nous avons tous été confrontés à la situation où les notes publiées ont soudainement disparu, ce qui est sans aucun doute déroutant et inquiétant. Dans ce cas, que devons-nous faire ? Cet article se concentrera sur le thème « Que faire si les notes publiées par Xiaohongshu sont manquantes » et vous donnera une réponse détaillée. 1. Que dois-je faire si les notes publiées par Xiaohongshu manquent ? Premièrement, ne paniquez pas. Si vous constatez que vos notes manquent, il est essentiel de rester calme et de ne pas paniquer. Cela peut être dû à une défaillance du système de la plateforme ou à des erreurs opérationnelles. Vérifier les enregistrements de version est facile. Ouvrez simplement l'application Xiaohongshu et cliquez sur « Moi » → « Publier » → « Toutes les publications » pour afficher vos propres enregistrements de publication. Ici, vous pouvez facilement trouver des notes publiées précédemment. 3.Repost. Si trouvé

Comment ajouter des liens de produits dans les notes dans Xiaohongshu Tutoriel sur l'ajout de liens de produits dans les notes dans Xiaohongshu Comment ajouter des liens de produits dans les notes dans Xiaohongshu Tutoriel sur l'ajout de liens de produits dans les notes dans Xiaohongshu Mar 12, 2024 am 10:40 AM

Comment ajouter des liens de produits dans les notes dans Xiaohongshu ? Dans l'application Xiaohongshu, les utilisateurs peuvent non seulement parcourir divers contenus mais également faire des achats, il y a donc beaucoup de contenu sur les recommandations d'achat et le bon partage de produits dans cette application si vous êtes un expert. sur cette application, vous pouvez également partager des expériences d'achat, trouver des commerçants pour coopérer, ajouter des liens dans des notes, etc. De nombreuses personnes sont prêtes à utiliser cette application pour faire du shopping, car elle est non seulement pratique, mais elle a également de nombreux experts qui en feront recommandations. Vous pouvez parcourir du contenu intéressant et voir s'il existe des produits vestimentaires qui vous conviennent. Voyons comment ajouter des liens de produits aux notes ! Comment ajouter des liens de produits aux notes de Xiaohongshu Ouvrez l'application sur le bureau de votre téléphone mobile. Cliquez sur la page d'accueil de l'application

Une plongée approfondie dans la palette de couleurs de matplotlib Une plongée approfondie dans la palette de couleurs de matplotlib Jan 09, 2024 pm 03:51 PM

Pour en savoir plus sur la table de couleurs matplotlib, vous avez besoin d'exemples de code spécifiques 1. Introduction matplotlib est une puissante bibliothèque de dessins Python. Elle fournit un riche ensemble de fonctions et d'outils de dessin qui peuvent être utilisés pour créer différents types de graphiques. La palette de couleurs (colormap) est un concept important dans matplotlib, qui détermine la palette de couleurs du graphique. Une étude approfondie de la table des couleurs matplotlib nous aidera à mieux maîtriser les fonctions de dessin de matplotlib et à rendre les dessins plus pratiques.

L'industrie de l'annotation de la conduite autonome sera-t-elle bouleversée par le modèle mondial en 2024 ? L'industrie de l'annotation de la conduite autonome sera-t-elle bouleversée par le modèle mondial en 2024 ? Mar 01, 2024 pm 10:37 PM

1. Problèmes rencontrés par l'annotation des données (en particulier basées sur les tâches BEV) Avec la montée en puissance des tâches basées sur les transformateurs BEV, la dépendance à l'égard des données est devenue de plus en plus lourde, et l'annotation basée sur les tâches BEV est également devenue de plus en plus complexe. . À l'heure actuelle, qu'il s'agisse d'annotation d'obstacles communs 2D-3D, d'annotation de lignes de voie basée sur des clips de nuages ​​de points reconstruits ou d'annotation de tâches d'occupation, cela reste encore trop cher (par rapport aux tâches d'annotation 2D, c'est beaucoup plus cher). Bien entendu, il existe également dans l’industrie de nombreuses études d’annotations semi-automatiques ou automatisées basées sur de grands modèles. D’un autre côté, le cycle de collecte de données pour la conduite autonome est trop long et implique une série de problèmes de conformité des données. Par exemple, vous souhaitez capturer le champ d'un camion à plateau à travers la caméra

Révéler l'attrait du langage C : découvrir le potentiel des programmeurs Révéler l'attrait du langage C : découvrir le potentiel des programmeurs Feb 24, 2024 pm 11:21 PM

Le charme de l'apprentissage du langage C : libérer le potentiel des programmeurs Avec le développement continu de la technologie, la programmation informatique est devenue un domaine qui a beaucoup attiré l'attention. Parmi les nombreux langages de programmation, le langage C a toujours été apprécié des programmeurs. Sa simplicité, son efficacité et sa large application font de l’apprentissage du langage C la première étape pour de nombreuses personnes souhaitant entrer dans le domaine de la programmation. Cet article discutera du charme de l’apprentissage du langage C et de la manière de libérer le potentiel des programmeurs en apprenant le langage C. Tout d’abord, le charme de l’apprentissage du langage C réside dans sa simplicité. Comparé à d'autres langages de programmation, le langage C

Comment définir les dimensions de saisie manuelle pour l'annotation CAO Comment définir les dimensions de saisie manuelle pour l'annotation CAO Feb 27, 2024 pm 07:50 PM

Les logiciels de CAO sont largement utilisés dans divers domaines de conception et le dimensionnement est un élément indispensable de la conception CAO. Parfois, les concepteurs doivent saisir manuellement les dimensions pour garantir la précision et la flexibilité. Cet article présentera donc en détail comment définir et saisir manuellement des dimensions dans CAO. Les utilisateurs qui ne savent pas comment configurer des dimensions de saisie manuelle devraient venir apprendre avec cet article ! Étapes de saisie manuelle des paramètres de taille pour les annotations CAO : 1. Ouvrez le logiciel CAD2023, créez un nouveau document vierge et créez un dessin, comme indiqué ci-dessous : 2. Cliquez ensuite sur l'outil linéaire pour créer une annotation linéaire. Comme indiqué ci-dessous : 3. Cliquez ensuite sur les deux extrémités de la ligne droite à marquer. Comme indiqué ci-dessous : 4. Saisissez ensuite T ou cliquez sur le texte (T) ci-dessous, comme indiqué ci-dessous : 5. Main

See all articles