目次
品詞タグ付け
标注语料库
表示已经标注的标识符:nltk.tag.str2tuple('word/类型')
读取已经标注的语料库
名词、动词、形容词等
尝试找出每个名词类型中最频繁的名词
探索已经标注的语料库
自动标注
默认标注器
正则表达式标注器
查询标注器
N-gram标注
基础的一元标注器
一般的N-gram标注器
组合标注器
は注釈付きの識別子を示します: nltk.tag.str2tuple('word/type')
nltk corpus ue navel は統一されたインターフェイスを提供するため、さまざまなファイル形式を心配する必要はありません。形式: Corpus.tagged_word()/tagged_sents()。パラメーターはカテゴリとフィールドを指定できます
ホームページ バックエンド開発 Python チュートリアル NLTK 学習: 語彙の分類と注釈付け

NLTK 学習: 語彙の分類と注釈付け

Jun 23, 2017 pm 03:33 PM
nltk 勉強 マーク ノート

[TOC]

品詞タグ付け

その後の多くのタスクでは、タグ付きの単語が必要になります。 nltk には独自の英語タガー pos_tag が付属していますpos_tag

import nltk
text = nltk.word_tokenize("And now for something compleyely difference")print(text)print(nltk.pos_tag(text))
ログイン後にコピー

标注语料库

表示已经标注的标识符:nltk.tag.str2tuple('word/类型')

text = "The/AT grand/JJ is/VBD ."print([nltk.tag.str2tuple(t) for t in text.split()])
ログイン後にコピー

读取已经标注的语料库

nltk语料库ue肚脐提供了统一接口,可以不必理会不同的文件格式。格式:语料库.tagged_word()/tagged_sents()。参数可以指定categories和fields

print(nltk.corpus.brown.tagged_words())
ログイン後にコピー

名词、动词、形容词等

这里以名词为例

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())
ログイン後にコピー

尝试找出每个名词类型中最频繁的名词

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])
ログイン後にコピー

探索已经标注的语料库

需要nltk.bigrams()nltk.trigrams(),分别对应2-gram模型和3-gram模型。

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()
ログイン後にコピー

自动标注

默认标注器

最简单的标注器是为每个标识符分配统一标记。下面就是一个将所有词都变成NN的标注器。并且用evaluate()进行检验。当很多词语是名词时候,它有利于第一次分析并提高稳定性。

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))
ログイン後にコピー

正则表达式标注器

注意这里规则是固定(由自己决定)。当规则越来越完善的时候,精确度越高。

patterns = [
    (r'.*ing$','VBG'),
    (r'.*ed$','VBD'),
    (r'.*es$','VBZ'),
    (r'.*','NN')#为了方便,只有少量规则]
regexp_tagger = nltk.RegexpTagger(patterns)
regexp_tagger.evaluate(brown_tagged_sents)
ログイン後にコピー

查询标注器

这里和书里是有差别的,不同于python2,注意调试。而查询标注器就是存储最有可能的标记,并且可以设置backoff参数,不能标记的情况下,就使用这个标注器(这个过程是回退

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('NN'))
baseline_tagger.evaluate(brown_tagged_sents)
ログイン後にコピー

N-gram标注

基础的一元标注器

一元标注器的行为和查找标注器很相似,建立一元标注器的技术,为训练

这里我们的标注器只是记忆训练集,而不是建立一般模型,那么吻合很好,但是不能推广到新文本。

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)
ログイン後にコピー

一般的N-gram标注器

N元标注器,就是检索index= n 的 word,并且检索n-N<=index<=n-1 的 tag。即通过前面词的tag标签,进一步确定当前词汇的tag。类似于nltk.UnigramTagger(),自带的二元标注器为:nltk.BigramTagger()用法一致。

组合标注器

很多时候,覆盖范围更广的算法比精度更高的算法更有用。利用backoff指明回退标注器,来实现标注器的组合。而参数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)
ログイン後にコピー

注釈コーパス

は注釈付きの識別子を示します: nltk.tag.str2tuple('word/type')</code > </h3><blockquote><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>from nltk.tag import brill brill.nltkdemo18plus() brill.nltkdemo18()</pre><div class="contentsignin">ログイン後にコピー</div></div><p></p>注釈付きコーパスを読む<hr> <h2 id="nltk-corpus-ue-navel-は統一されたインターフェイスを提供するため-さまざまなファイル形式を心配する必要はありません-形式-code-Corpus-tagged-word-tagged-sents-code-パラメーターはカテゴリとフィールドを指定できます">nltk corpus ue navel は統一されたインターフェイスを提供するため、さまざまなファイル形式を心配する必要はありません。形式: <code>Corpus.tagged_word()/tagged_sents()。パラメーターはカテゴリとフィールドを指定できます

rrreee

名詞、動詞、形容詞など
例として名詞を示します
rrreee
🎜各名詞タイプで最も頻繁に使用される名詞を見つけてみてください🎜🎜rrreee🎜注釈付きコーパス 🎜🎜🎜 には、nltk.bigrams()nltk.trigrams() が必要です。これらは、それぞれ 2 グラム モデルと 3 グラム モデルに対応します。 。 🎜🎜🎜rrreee🎜🎜🎜自動タグ付け🎜🎜デフォルトのタグ付け🎜🎜🎜最も単純なタグ付けは、各識別子に均一のタグを割り当てます。以下は、すべての単語を NN に変換するタガーです。 evaluate() を使用して確認します。これにより、最初の分析が容易になり、多くの単語が名詞である場合の安定性が向上します。 🎜🎜🎜rrreee🎜🎜正規表現タグ付け🎜🎜🎜ここでのルールは固定されていることに注意してください(独自の判断による)。ルールが完成すればするほど精度は高くなります。 🎜🎜🎜rrreee🎜🎜クエリアノテーター🎜🎜🎜本との違いは、Python2とは異なる点です。クエリ タガーには最も可能性の高いタグが保存され、タグをマークできない場合は、このタガーが使用されます (このプロセスはバックオフです) 🎜🎜。 🎜rrreee🎜🎜🎜N-gram アノテーション🎜🎜基本的な単項アノテーター🎜🎜🎜 単項アノテーターの動作は検索アノテーターと非常によく似ており、 単項アノテーターを構築するためのテクノロジーはトレーニングされています。 🎜🎜ここでは、アノテーターは一般的なモデルを構築するのではなく、トレーニング セットを記憶するだけなので、一致は非常に良好ですが、新しいテキストに一般化することはできません。 🎜🎜🎜rrreee🎜🎜一般的な N グラム タガー🎜🎜🎜 N グラム タガーは、index= n の単語と n-N<=index<=n-1 のタグを取得します。すなわち、現在の単語のタグは、前の単語のタグタグを通じてさらに決定される。 nltk.UnigramTagger() と同様に、組み込みのバイナリ タガーは nltk.BigramTagger() です。使用方法は一貫しています。 🎜🎜🎜複合タガー🎜🎜🎜 多くの場合、精度の高いアルゴリズムよりも、範囲が広いアルゴリズムの方が便利です。 backoff を使用して バックオフ タガーを指定し、タガーの組み合わせを実現します。パラメータ cutoff が明示的に int 型として宣言されている場合、1 ~ n 回しか出現しないコンテキストは自動的に破棄されます。 🎜🎜🎜rrreee🎜🎜オリジナルと比較すると、精度が大幅に向上していることがわかります🎜🎜文境界注釈🎜🎜🎜文頭の単語については、最初のn単語がありません。解決策: タグ付きの tagged_sents を使用してタガーをトレーニングします。 🎜🎜🎜🎜変換ベースのアノテーション: Brill アノテーター 🎜🎜🎜 は上記よりも優れています。実装の考え方: 大きなストロークから始めて、細部を修正し、少しずつ細かい変更を加えます。 🎜少量のメモリを消費するだけでなく、状況に応じて、問題が静的ではなく小さくなるにつれてリアルタイムでエラーを修正します。もちろん、python3 と python2 では呼び出しが異なります。 🎜🎜🎜りー🎜🎜🎜🎜🎜

以上がNLTK 学習: 語彙の分類と注釈付けの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

小紅書メモを削除する方法 小紅書メモを削除する方法 Mar 21, 2024 pm 08:12 PM

小紅書メモを削除するにはどうすればよいですか? メモは小紅書アプリで編集できます。ほとんどのユーザーは小紅書メモの削除方法を知りません。次に、エディターがユーザーに小紅書メモの削除方法に関する写真とテキストを提供します。チュートリアル、興味のあるユーザーが来て、それを受講してください見てください!小紅書使い方チュートリアル 小紅書メモの削除方法 1. まず小紅書アプリを開いてメインページに入り、右下隅の[自分]を選択して特別エリアに入ります; 2. 次に、マイエリアで、表示されているメモページをクリックします下の図で、削除したいメモを選択します; 3. メモページに入り、右上隅の [3 つの点] をクリックします; 4. 最後に、下部に機能バーが展開され、[削除] をクリックして完了します。

pip を完全にアンインストールし、Python をより効率的に使用する方法を学びます pip を完全にアンインストールし、Python をより効率的に使用する方法を学びます Jan 16, 2024 am 09:01 AM

もうpipは必要ありませんか? pip を効果的にアンインストールする方法を学びましょう!はじめに: pip は Python のパッケージ管理ツールの 1 つで、Python パッケージを簡単にインストール、アップグレード、アンインストールできます。ただし、別のパッケージ管理ツールを使用したい場合や、Python 環境を完全にクリアする必要がある場合など、pip をアンインストールする必要がある場合があります。この記事では、pip を効率的にアンインストールする方法を説明し、具体的なコード例を示します。 1. pip をアンインストールする方法 以下では、pip をアンインストールする 2 つの一般的な方法を紹介します。

小紅書に投稿したメモが見つからない場合はどうすればよいですか?送信したばかりのメモが見つからない理由は何ですか? 小紅書に投稿したメモが見つからない場合はどうすればよいですか?送信したばかりのメモが見つからない理由は何ですか? Mar 21, 2024 pm 09:30 PM

小紅書のユーザーとして、私たちは皆、公開されたノートが突然消えてしまう状況に遭遇したことがありますが、間違いなく混乱し、心配しています。この場合、どうすればよいでしょうか?この記事では、「小紅書が公開したメモが見つからない場合の対処方法」というテーマに焦点を当て、詳細な回答を提供します。 1. 小紅書が発行したメモが紛失した場合はどうすればよいですか?まず、パニックにならないでください。メモがなくなっていることに気づいた場合は、パニックに陥らず、落ち着いて行動することが重要です。これは、プラットフォームのシステム障害または操作エラーが原因である可能性があります。リリース記録の確認も簡単です。小紅書アプリを開き、「自分」→「公開」→「すべての出版物」をクリックするだけで、自分の出版記録を表示できます。ここでは、以前に公開されたノートを簡単に見つけることができます。 3.再投稿。見つかったら

小紅書でノートに商品リンクを追加する方法 小紅書でノートに商品リンクを追加するチュートリアル 小紅書でノートに商品リンクを追加する方法 小紅書でノートに商品リンクを追加するチュートリアル Mar 12, 2024 am 10:40 AM

小紅書でメモに商品リンクを追加するにはどうすればよいですか?小紅書アプリでは、ユーザーはさまざまなコンテンツを閲覧できるだけでなく、ショッピングもできるため、このアプリにはショッピングのおすすめや良い商品の共有に関するコンテンツがたくさんあります。このアプリでは、ショッピング体験を共有したり、協力してくれる販売者を見つけたり、メモにリンクを追加したりすることもできます。便利なだけでなく、専門家がいくつかの機能を備えているため、多くの人がこのアプリをショッピングに使用したいと考えています。興味深いコンテンツを閲覧して、自分に合った衣料品があるかどうかを確認できます。ノートに商品リンクを追加する方法を見てみましょう! 小紅書ノートに商品リンクを追加する方法 携帯電話のデスクトップでアプリを開きます。アプリのホームページをクリックします

matplotlib のカラーマップの詳細 matplotlib のカラーマップの詳細 Jan 09, 2024 pm 03:51 PM

matplotlib カラー テーブルの詳細については、特定のコード サンプルが必要です 1. はじめに matplotlib は強力な Python 描画ライブラリであり、さまざまな種類のチャートの作成に使用できる豊富な描画関数とツールのセットを提供します。カラーマップ (カラーマップ) は matplotlib の重要な概念であり、チャートの配色を決定します。 matplotlib カラー テーブルを詳しく学ぶことは、matplotlib の描画機能をよりよく習得し、描画をより便利にするのに役立ちます。

Pygame 入門: 包括的なインストールと構成のチュートリアル Pygame 入門: 包括的なインストールと構成のチュートリアル Feb 19, 2024 pm 10:10 PM

Pygame をゼロから学ぶ: 完全なインストールと構成チュートリアル、特定のコード例が必要 はじめに: Pygame は、Python プログラミング言語を使用して開発されたオープン ソースのゲーム開発ライブラリであり、豊富な機能とツールを提供し、開発者はさまざまなタイプのゲームを簡単に作成できますゲームの。この記事は、Pygame をゼロから学習するのに役立ち、完全なインストールと構成のチュートリアルと、すぐに始めるための具体的なコード例を提供します。パート1:最初にPythonとPygameをインストールして、確認してください

自動運転アノテーション業界は 2024 年に世界モデルによって覆されるでしょうか? 自動運転アノテーション業界は 2024 年に世界モデルによって覆されるでしょうか? Mar 01, 2024 pm 10:37 PM

1. データ アノテーション (特に BEV タスクに基づく) が直面する問題 BEV トランスフォーマー ベースのタスクの台頭により、データへの依存度がますます重くなり、BEV タスクに基づくアノテーションもますます複雑になりました。 。現時点では、2D-3D 結合障害物アノテーション、再構成された点群クリップに基づく車線アノテーション、占有タスク アノテーションのいずれであっても、依然としてコストが高すぎます (2D アノテーション タスクと比較すると、はるかに高価です)。もちろん、業界には大規模なモデルに基づいた半自動または自動のアノテーション スタディも多数あります。一方で、自動運転のデータ収集サイクルは長すぎ、データコンプライアンスに関する一連の問題が発生します。たとえば、カメラ越しに平台トラックの現場をキャプチャしたいとします。

Wordでルート番号を入力する方法を一緒に学びましょう Wordでルート番号を入力する方法を一緒に学びましょう Mar 19, 2024 pm 08:52 PM

Word でテキスト コンテンツを編集するときに、数式記号の入力が必要になる場合があります。 Word でルート番号を入力する方法を知らない人もいるので、Xiaomian は私に、Word でルート番号を入力する方法のチュートリアルを友達と共有するように頼みました。それが私の友達に役立つことを願っています。まず、コンピュータで Word ソフトウェアを開き、編集するファイルを開き、ルート記号を挿入する必要がある場所にカーソルを移動します。下の図の例を参照してください。 2. [挿入]を選択し、記号内の[数式]を選択します。下の図の赤丸で示すように: 3. 次に、下の[新しい数式を挿入]を選択します。以下の図の赤丸で示すように: 4. [根号式]を選択し、適切な根号を選択します。下の図の赤丸で示したように、

See all articles