自然言語処理ライブラリ - Snownlp

自然言語処理ライブラリ - Snownlp

[[399217]]

この記事はWeChatの公開アカウント「Zhibin's Python Notes」から転載したもので、著者はZhibinです。この記事を転載する場合は、Zhibin の Python Notes 公開アカウントにご連絡ください。

みなさんこんにちは、私はZhibinです〜

前回、Python を使用してローカルでテキスト感情分析を実行する方法を紹介したとき、Snownlp ライブラリを紹介しました。その時は、感情分析機能のみを紹介しました。今回は、その他の強力な機能を詳しく紹介します。

01定義とインストール

まずは公式の紹介を見てみましょう。

SnowNLP は Python で書かれたクラスライブラリで、中国語のテキストコンテンツを簡単に処理できます。TextBlob からヒントを得ました。自然言語処理ライブラリのほとんどは基本的に英語用なので、中国語の処理に便利なクラスライブラリを作成しました。また、TextBlob とは異なり、ここでは NLTK は使用されていません。すべてのアルゴリズムは私たち自身で実装されており、いくつかのトレーニング済み辞書が付属しています。なお、このプログラムは Unicode エンコードで処理しますので、使用時には Unicode にデコードしてください。

インストールコマンドは次のとおりです。

  1. pip インストール snownlp

02機能紹介

主に9つの機能があります。これら9つの機能がそれぞれどのような機能を果たすのか紹介します。

01単語分割機能

SnowNLP の単語分割機能は、辞書に従ってテキスト内容を単語の文字列に分割することができます。単語でない場合は別の文字列になります。コードは次のとおりです。

  1. a = SnowNLP( '私は学ぶことが大好きです! ' )
  2. 印刷(a.words)

02品詞タグ付け

SnowNLP の品詞タグ付け機能は各単語にタグを付けることができるため、その単語が名詞なのか、動詞なのか、それとも他の品詞なのかを知ることができます。コードは次のとおりです。

  1. a = SnowNLP( '私は学ぶことが大好きです! ' )
  2. a.tags内のiの場合:
  3. 印刷(i)

03感情分析

前回の記事では、SnowNLPの感情分析機能について詳しく紹介しました。ここでは詳しく紹介しません。興味があれば、この記事の2つのテキスト感情分析方法をご覧ください。どちらがお好みですか?

04ピンイン表示

SnowNLP のピンイン標準機能は、テキスト内のすべての文字にピンインを注釈付けできるため、将来、珍しい文字が読めなくなることを心配する必要はありません~~ コードは次のとおりです。

  1. a = SnowNLP( '私は学ぶことが大好きです! ' )
  2. print(a.pinyin)

05キーワードと概要の抽出

SnowNLP はテキスト内に表示されるキーワードやテキスト要約を抽出できるため、テキストの内容を迅速に理解できます。コードは次のとおりです。

  1. text = ' ' 'コンピュータネットワークシステムとは、通信機器と回線を使用して、地理的に異なる場所にあり独立した機能を持つ複数のコンピュータシステムを相互接続し、完全に機能するネットワークソフトウェアを使用して、ネットワーク内のリソースの共有と情報伝送を実現するシステムです。
  2. コンピュータを相互接続することにより、コンピュータ間の通信が実現され、コンピュータシステム間での情報、ソフトウェア、機器リソースの共有や共同作業が可能になります。
  3. その本質的な特徴は、コンピュータ間でさまざまなリソースを高度に共有し、情報やアイデアを便利に交換できるようにすることです。 '' '
  4. b=SnowNLP(テキスト)
  5. key_word = b.keywords(5) #()内の数字は抽出されたキーワードの数を表します
  6. abs_word = b.summary(1) #()内の数字は抽出された要約の数を表します
  7. 印刷(キーワード)
  8. 印刷(abs_word)

06用語頻度と逆文書頻度を計算する

キーワードの順序は、TF-IDF 値のサイズによって決定されます。TF は用語頻度、IDF は逆文書頻度です。用語頻度は、テキストに出現する単語の頻度です。逆文書頻度は、用語頻度に基づいて各単語に「重要度」の重みを割り当てます。単語が一般的であるほど、割り当てられる重みは低くなり、単語がまれであるほど、重みは高くなります。この重みは逆文書頻度と呼ばれ、そのサイズは単語の一般的度に反比例します。コードは次のとおりです。

  1. c = SnowNLP([[ 'コンピュータ' ], [ 'リソース' ], [ 'システム' ], [ '情報' ], [ '関数' ]])
  2. 印刷(c.tf)
  3. 印刷(c.idf)

07繁体字中国語から簡体字中国語へ

個人的にはこのスキルは比較的不人気な気がし​​ており、現在は基本的に全キャラが簡略化されている。 (あくまでも個人的な意見ですので、気に入らない場合は批判しないでください。) コードは次のとおりです。

  1. d = SnowNLP( '山は高くないが、不死者がいれば魔法の力がある。川は深くないが、竜がいれば魔法の力がある' )
  2. 印刷(d.han)

08文章分割機能

SnowNLP は、「、」および「。」に従ってテキストをセグメント化できます。コードは次のとおりです。

  1. b=SnowNLP(テキスト)
  2. print(b.sentences)

09テキストの類似性

  1. e = SnowNLP([[ 'コンピュータ' , 'リソース' ],
  2. [ 'システム' ]、
  3. [ '情報' '機能' ]
  4. ])
  5. print(e.sim([ 'システム' ]))
  6. print(e.sim([ 'コンピュータ' ]))
  7. print(e.sim([ '関数' ]))

<<:  Java プログラミング スキル - データ構造とアルゴリズム「動的プログラミング アルゴリズム」

>>:  看護師の負担を軽減し、病院の効率化を実現します!医療物流ロボットが「新たな人気」に

ブログ    

推薦する

...

人工知能専攻にはどのような専攻が含まれますか?見通しはどうですか?

人工知能にはどのような専攻が含まれますか?人工知能に関連する研究方向には、パターン認識とインテリジェ...

最終支払いを控える人々のダブル11不安:配達ロボットは解決できるか?

今年のダブル11のクライマックスが終わり、最後の支払いをしなければならなかった人たちも、速達を待つ苦...

AI音声アシスタントの台頭:利便性とセキュリティのバランス

ChatGPT は私たちが知る限り最新の音声アシスタントです。 SiriやAlexaなどの企業は長年...

...

...

NeRFは過去のものになるのか?立体復元は3D GSの新時代へ! (復旦大学からの最新レビュー)

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

...

...

...

Alibaba DAMO Academyは、勾配を直接ターゲットとし、既存のオプティマイザーを1行のコードで置き換えることができる新しい最適化手法を提案しています。

最適化テクニックはたくさんあります!たとえば、バッチ正規化、重み標準化などです。しかし、既存の最適化...

これからオープンする無人コンビニや無人スーパーにはこんな7つのブラックテクノロジーが隠されている

もうすぐダブルイレブンがやってきます。さまざまな商店が準備を進めています。JDの無人コンビニや無人ス...

史上最も完全な自動運転ポジションの紹介

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

...

...