自然言語処理ライブラリ - 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 プログラミング スキル - データ構造とアルゴリズム「動的プログラミング アルゴリズム」

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

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

Python での遺伝的アルゴリズムによるガベージ コレクション戦略の最適化

遺伝的アルゴリズムは、進化のプロセスに性質が似ている最適化手法です。これは乱暴な例えかもしれませんが...

近年の機械学習の奇妙な状況

翻訳者注:人工知能分野の発展は学者の貢献と切り離せないものです。しかし、研究が進むにつれて、「クリッ...

1990年代生まれの中国人教授が、1年間でネイチャー誌に3本の論文を発表した。最初の量子ニューラルネットワークQuantumFlowはオープンソースです

[[432543]]ニューラル ネットワークは、現在のコンピューティング アプリケーションで最も急速...

3Dデモを使用してさまざまな最適化アルゴリズムを理解します。これはC++プログラマーにとって朗報です。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

12 のモダリティ、1 つの学習フレームワーク、Meta-Transformer がバックボーン ネットワークの統合を実現

汎用人工知能 (AGI) に向けた多くの方向性の中で、マルチモーダル大規模モデル (MLLM) の開...

AI+がん診断:巨人の「小さなそろばん」はまだ実現困難

[[246868]]スマートヘルスケアの分野における最近のニュースを振り返ると、大手企業は絶えず行動...

...

...

AlphaGo の最初のバグ: 囲碁アルゴリズムの最大の弱点は何でしょうか?

[[163852]]どれほど恐ろしいモンスターにも弱点はあります。なぜAlphaGoは皆を驚かせる...

インターネットで話題! 23歳の中国人医師が22歳の歴史的弱点を治す、ネットユーザー「この話はいいね」

最近、別の若い中国人男性が、22年間存在していたバグを修正したことでインターネット上で人気を博した。...

人工知能(AI)が商業ビルのアプリケーションで成功を収める

[[359215]]今日、ビッグデータやモノのインターネットなどのテクノロジーが広く応用されるように...

技術革新は「プロトタイプ」で止まるわけにはいかない…

[[270666]] [51CTO.com クイック翻訳] 昨今、クラウドコンピューティング、ブロ...

...

AIの新興企業が胡潤富豪リストに名を連ねる:「CVの4人の小さなドラゴン」の創業者3人がリスト入り

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

デジタルヒューマンのための大規模モデル

ビッグモデルはソフトウェア業界全体を変えるでしょう。その代表的な製品の一つがデジタルヒューマンです。...