自然言語処理技術(NLP)


1. ニューラルネットによる自然言語処理技術 (佐藤良治)

数学をなまけた人のために、ニューラルネットによる自然言語処理技術を解説しています。

高校数学をなまけた人のために、数学最低限度で、基本から最先端の技術までを、解説しました。 DeepLearningに関しては、論文をなぞった解説記事とは異なり、ネットワークのパーツの直感的な意味から説明しているため、世界一わかりやすいと思う。 課題として言語処理100本ノックという問題集から選んだもの、サンプルコードとしてPyTorchのTutorial Sampleの自然言語を扱ったもの、を利用させてもらっています。

2. 言語処理100本ノック (東京工業大学 岡崎直観 教授)

言語処理100本ノックは,言語処理を志す人を対象とした,プログラミングのトレーニング問題集です. 乾・岡崎研の新人研修勉強会の一つであるLearning Programmingで使われています. このトレーニングは,以下の点に配慮してデザインされています.

  • 自然言語処理の研究を進める上で,一度は書いておいた方がよいプログラム
  • 統計,機械学習,データベースなどの便利な概念・ツールを体験する
  • 実用的で,かつワクワクするようなデータを題材とする
  • 研究を進めるうえで重要なプログラミングのルール・作法を身につける
  • モジュール性や組み合わせを考慮しつつ,短くてシンプルなプログラムを書く
  • プログラムの動作を確認(デバッグ)しながらコーディングする
  • 労力を節約する(既存のツール/プログラム/モジュールが使えるときは流用する)
  • 計算資源(メモリ・実行時間)を無駄にしない方法を学ぶ
  • Pythonの基礎な事項を一通りカバーする
  • 今どきの言語処理系エンジニアが知っておくべき世界の入り口へ誘う

3. トピック・専門用語抽出

a. 専門用語抽出(Terminology Extraction)

専門用語とは、ある特定の職業に従事する者や、ある特定の学問の分野、業界等の間でのみ使用され、通用する言葉・用語群である。テクニカルターム、学術用語とも言われる。例えば、ロボット支援手術、仮想マシンなど。専門用語は、複合語になる割合が高い。専門用語抽出とは、コーパス中から専門用語を抽出するタスクである。専門家による人手での抽出では,専門家の作業負担が大きいため,自動で専門用語を抽出する技術の高度化が求められている。

用語抽出は,連語(複合語)抽出,固有表現抽出,未知語処理などのタスクと関連が深い。用語は複数の語から構成されることが多いため,連語や複合語(Multi-Word Expression)の 抽出と類似した手法が用語抽出に採用される.固有表現抽出は,特定の意味カテゴリー(人名,組織名,地名など)を持つ用語を抽出するタスクとみなすことができるが,分野を代表 する度合(用語性)はさほど考慮されない

用語の特質として,用語の言語学的な構造(Linguistic Structure),単位性(Unithood),用語性(Termhood)を挙げている.

中川ら[1]によると、専門用語抽出は、三つのフェーズが用いられる:

  1. 用語候補の抽出
  2. 用語の適切さ評価
  3. 用語の選定

専門用語抽出は、同位語抽出分散表現獲得・同義語取得固有表現抽出キーフレーズ抽出等と関連している。

b. 同位語抽出

同位語とは、与えられた語と並列関係になるような語である。例えば、並列助詞「や」で並べられる語は同位語である。同位語抽出とは、与えられた語と共通の文脈で専門用語となるような語を探し出すこと。

c. 分散表現獲得・同義語取得

分散表現とは,語の意味を低次元のベクトルで表現する方法である。分散表現獲得手法は,Word2vec という名で様々な自然言語処理タスクに幅広く利用されている。分散表現は,king − man + woman = queen というような, 語同士の演算を可能することや,単語間の類似度の計算を可能にすることが特徴である。しかし,Word2vec は基本的に単語にしか対応しておらず,複合語に対応していない.

d. 固有表現抽出(Named Entity Recoganization:NER)

固有表現とは? 特定の個人、組織、地名など、一意に識別可能な名前を指す言語学の用語、例えば。人の名前、国、都市、企業、製品名、歴史上の事件など。固有表現抽出(認識)(Named Entity Recognition, NER)とは? 文章中から人名・地名・組織名といった固有名詞や,時間表現・金額表現等の語句を抽出する自然言語処理技術である。 専門用語の多くが固有表現に該当するため,固有表現抽出を行うことは,コーパス中の専門用語の候補を発見することに資する。

e. キーフレーズ抽出

キーフレーズ抽出とは、文章からその主題を良く表現している句を抽出すること。複数単語の連続を抽出するので、単語を意味する「ワード」ではなく、句を意味する「フレーズ」が使われる。キーフレーズ抽出の手法は統計ベース、グラフベース、機械学習ベースの手法に大別される。

f. 日本語品詞体系

UniDic品詞体系

大分類中分類小分類細分類語彙素類語彙例
名詞普通名詞一般(例)「天気」「学校」
サ変可能(例)「運動(する)」
形状詞可能(例)「安全(な)」
サ変形状詞可能(例)「心配(する・な)」
副詞可能(例)「大体」「近々」
固有名詞一般固有名(例)「平成」「ウィンドウズ」
人名一般人名(例)「孫正義」
(例)「安部」
(例)「晋三」
地名一般地名(例)「福岡」
(例)「チリ」
数詞(例)
助動詞語幹助動(例)「(食べた)そう」
代名詞(例)
形状詞一般(例)「静か」「健やか」
タリ(例)「釈然」「錚々」
助動詞語幹助動(例)「そう」「よう」「みたい」
連体詞(例)
副詞(例)
接続詞(例)
感動詞一般(例)
フィラー(例)
動詞一般(例)
非自立可能(例)「する」「できる」「(し)始める」「(て)くる」
形容詞一般(例)
非自立可能(例)「(て)ない」「(て)よい」「(て)欲しい」
助動詞助動(例)
助詞格助詞格助(例)
副助詞副助(例)
係助詞係助(例)
接続助詞接助(例)
終助詞終助(例)
準体助詞準助(例)
接頭辞接頭(例)
接尾辞名詞的一般接尾体(例)「(利便)性」「(配布)用」
サ変可能接尾体(例)「(活性)化」
形状詞可能接尾体(例)「(東洋)風」
副詞可能接尾体(例)「(仕事)中」
助数詞接尾体(例)
形状詞的接尾相(例)「(健康)的」「(自慢)気」
動詞的接尾用(例)「(汗)ばむ」「(大人)ぶる」
形容詞的接尾相(例)「(安)っぽい」「(書き)易い」
記号一般記号(例)
文字記号(例)
補助記号一般補助(例)
句点補助(例)
読点補助(例)
括弧開補助(例)
括弧閉補助(例)
空白補助(例)

名詞-固有名詞-組織名はUniDic ver. 1.3.12で廃止された

参考:

  1. Term/Phrase/Keyword Extraction and Visualization
  2. Pythonで文章から複合語を抽出する
  3. 専門用語(キーワード)自動抽出システム,東京大学中川名誉教授, CF1
    • 連結頻度(LN,RN)、連結種類数(LDN,RDN)、複合名詞スコア(LR)、出現頻度を加えた複合名詞スコア(FLR
  4. PKE によるキーフレーズ抽出
  5. AIによる有価証券報告書のキーワード分析 ~BERTを用いた固有表現抽出の検証~, 三菱総研DCS デジタル企画推進部
  6. ChatGPTの技術を用いた 固有表現抽出の手法の検討
  7. Pretrained Japanese BERT models, Tohoku NLP Group:"cl-tohoku/bert-japanese"
  8. Hugging Face:1. "What is Token Classification?", 2. "huggingface/transformers"
  9. 自然言語解析ライブラリspaCyの紹介
  10. ja_ginzaとspaCyを用いた自然言語処理
  11. 国語の文法
  12. 電子情報通信学会知識ベース 8 章 「情報抽出-用語抽出」(PDF)
  13. Zenn, キーフレーズ抽出の諸アルゴリズム

Last-modified: 2024-01-24 (水) 10:46:06