🚀 POS Tagging - Token Segmentation & Categories
このプロジェクトは、Hugging Faceを使用してトークンとその品詞(POS)カテゴリを抽出するシンプルなスクリプトを提供します。また、文章から名詞とストップワードを自動的に検出して抽出する機能も備えています。
モデル情報
属性 |
詳細 |
モデルタイプ |
Token Classification |
ベースモデル |
microsoft/mdeberta-v3-base |
タグ |
pos-tagging, multilingual, deberta, nlp |
🚀 クイックスタート
品詞タグ付け - トークン分割とカテゴリ
from transformers import pipeline
pos_pipeline = pipeline("token-classification", model="jordigonzm/mdeberta-v3-base-multilingual-pos-tagger")
text = "On January 3rd, 2024, the $5.7M prototype—a breakthrough in AI-driven robotics—successfully passed all 37 rigorous performance tests!"
words = text.split(" ")
tokens = pos_pipeline(words)
for word, group_token in zip(words, tokens):
print(f"{word:<15}", end=" ")
for token in group_token:
print(f"{token['word']:<8} → {token['entity']:<8}", end=" | ")
print("\n" + "-" * 80)
ストップワード抽出を伴う品詞タグ付け
from transformers import pipeline
pos_pipeline = pipeline("ner", model="jordigonzm/mdeberta-v3-base-multilingual-pos-tagger")
text = "Companies interested in providing the service must take care of signage and information boards."
tokens = pos_pipeline(text)
print("\nTokens POS tagging:")
for token in tokens:
print(f"{token['word']:10} → {token['entity']}")
words, buffer, labels = [], [], []
for token in tokens:
raw_word = token["word"]
if raw_word.startswith("▁"):
if buffer:
words.append("".join(buffer))
labels.append(buffer_label)
buffer = [raw_word.replace("▁", "")]
buffer_label = token["entity"]
else:
buffer.append(raw_word)
if buffer:
words.append("".join(buffer))
labels.append(buffer_label)
print("\nPOS tagging results:")
for word, label in zip(words, labels):
print(f"{word:<15} → {label}")
noun_tags = {"NOUN", "PROPN"}
stopword_tags = {"DET", "ADP", "PRON", "AUX", "CCONJ", "SCONJ", "PART"}
filtered_nouns = [word for word, tag in zip(words, labels) if tag in noun_tags]
stopwords = [word for word, tag in zip(words, labels) if tag in stopword_tags]
print("\nFiltered Nouns and Proper Nouns:", filtered_nouns)
print("\nStopwords detected:", stopwords)
📚 ドキュメント
多言語品詞タグ付けの概要
このレポートでは、多言語品詞タグ付けモデルの評価フレームワークと潜在的なトレーニング設定について説明しています。このモデルはTransformerアーキテクチャに基づいており、限られたトレーニングエポック数の後に評価されます。
期待される範囲
- 検証損失:通常、データセットの複雑性と正則化に応じて、
0.02
から 0.1
の間。
- 全体的な精度:データセットの多様性とトークン化の品質に影響され、
96%
から 99%
の範囲が期待されます。
- 全体的な再現率:精度と同様の要因に左右され、一般的に
96%
から 99%
の間。
- 全体的なF1スコア:精度と再現率をバランスさせ、
96%
から 99%
の範囲が期待されます。
- 全体的な正解率:言語のバリエーションとモデルの堅牢性に応じて、
97%
から 99.5%
の間で変動します。
- 評価速度:通常、バッチサイズとハードウェアに応じて、
100-150サンプル/秒
| 25-40ステップ/秒
。
トレーニング設定
- モデル:Transformerベースのアーキテクチャ(例:BERT, RoBERTa, XLM-R)
- トレーニングエポック数:収束と検証性能に応じて、
2
から 5
。
- バッチサイズ:メモリ制約と安定性を考慮して、
1
から 16
。
- 学習率:最適化のダイナミクスとウォームアップ戦略に基づいて調整され、
1e-6
から 5e-4
。