中文分割、それは高度で複雑な技術です。人間にとっても AI にとっても同様です。
北京大学は、PKUSeg という名前の Python ベースの中文分割ツールキットをオープンソース化しました。
このツールキットの分割精度は、THULAC と JIEBA という 2 つの重要な競合ツールをはるかに上回っています。
さらに、PKUSeg は多くの分野での分割をサポートし、新しい注釈データを使用してモデルをトレーニングすることもサポートしています。
精度の比較
この競技会では、PKUSeg の競争相手は 2 人います:
1 人は清華大学の THULAC で、もう 1 人は「最高の中文分割コンポーネントを作る」という意気込みの Jieba 分割です。これらは現在の主流の分割ツールです。
テスト環境は Linux で、テストデータセットは MSRA(ニュースデータ)と CTB8(混合テキスト)です。
結果は以下の通りです:
競技会で使用された評価基準は、第 2 回国際漢語分割評価競技会で提供された分割評価スクリプトです。
F スコアとエラーレートの 2 つの指標で、PKUSeg は他の 2 つの競合ツールよりも明らかに優れています。
使用方法
事前トレーニング済みモデル
PKUSeg は、3 つの事前トレーニング済みモデルを提供しています。それぞれ異なるタイプのデータセットでトレーニングされています。
1 つは MSRA(ニュースコーパス)でトレーニングされたモデルです:
https://pan.baidu.com/s/1twci0QVBeWXUg06dK47tiA
2 つは CTB8(ニューステキストとウェブテキストのハイブリッドコーパス)でトレーニングされたモデルです:
https://pan.baidu.com/s/1DCjDOxB0HD2NmP9w1jm8MA
3 つは Weibo(ウェブテキストコーパス)でトレーニングされたモデルです:
https://pan.baidu.com/s/1QHoK2ahpZnNmX6X7Y9iCgQ
必要に応じて、異なるモデルを選択できます。
また、新しい注釈データを使用して新しいモデルをトレーニングすることもできます。
コードの例:
# コード例1 デフォルトのモデルとデフォルトの辞書を使用して分割
import pkuseg
seg = pkuseg.pkuseg() #デフォルトの設定でモデルをロード
text = seg.cut('我爱北京天安门') #分割を実行
print(text)
# コード例2 ユーザー定義の辞書を設定
import pkuseg
lexicon = ['北京大学', '北京天安门'] #ユーザー辞書の単語を分割しないようにする
seg = pkuseg.pkuseg(user_dict=lexicon) #モデルをロードし、ユーザー辞書を指定
text = seg.cut('我爱北京天安门') #分割を実行
print(text)
# コード例3
import pkuseg
seg = pkuseg.pkuseg(model_name='./ctb8') #ユーザーがctb8モデルをダウンロードして'./ctb8'ディレクトリに配置したと仮定し、model_nameを設定してそのモデルをロード
text = seg.cut('我爱北京天安门') #分割を実行
print(text)
新しいモデルをトレーニングする場合:
# コード例5
import pkuseg
pkuseg.train('msr_training.utf8', 'msr_test_gold.utf8', './models', nthread=20) #トレーニングファイルは'msr_training.utf8'、テストファイルは'msr_test_gold.utf8'、モデルは'./models'ディレクトリに保存し、20のスレッドでモデルをトレーニング
より詳細な使用方法については、文末のリンク先にアクセスしてください。
試してみてください
PKUSeg の作者は 3 人います。Ruixuan Luo(罗睿轩)、Jingjing Xu(许晶晶)、Xu Sun(孙栩)です。
このツールキットの誕生は、ACL の論文に参加した 2 人の貢献に基づいています。
高い精度を試してみませんか?
GitHub リンク:
https://github.com/lancopku/PKUSeg-python