CRAN Task View: Natural Language Processingについて、機械翻訳を交えて日本語化し掲載しております。
概要
Maintainer: | Fridolin Wild |
Contact: | wild at open.ac.uk |
Version: | 2023-09-12 |
URL: | https://CRAN.R-project.org/view=NaturalLanguageProcessing |
Source: | https://github.com/cran-task-views/NaturalLanguageProcessing/ |
Contributions: | このタスクビューに対する提案や改良は、GitHubのissueやpull request、またはメンテナのアドレスに電子メールで送ってください。詳しくはContributing guideをご覧ください。 |
Installation: | このタスクビューからのパッケージは、ctvパッケージを使用して自動的にインストールすることができます。例えば、ctv::install.views(“NaturalLanguageProcessing”, coreOnly = TRUE) は全てのコアパッケージをインストールし、ctv::update.views(“NaturalLanguageProcessing”)はまだインストールしていない全てのパッケージと最新のものをインストールする。詳細は、CRAN Task View Initiativeを参照してください。 |
自然言語処理は、1940年代から50年代にその基礎が築かれて以来、長い道のりを歩んできた(導入については、例えば、Jurafsky and Martin (2008, 2009, 2022 draft third edition)を参照。Speech and Language Processing, Pearson Prentice Hallを参照)。このCRANタスクビューでは、計算言語学者が様々なレベルで音声や言語の解析を行う際にサポートする、関連するRパッケージを収集しています(単語、構文、意味論、語用論に焦点を設定)。
近年、我々は、文章を処理するパッケージで使用されるフレームワーク、 すなわち、tmを開発しました。この分野の拡張パッケージは、tmの基本ルーチンとインタフェースをとることが強く推奨されており、このフレームワークパッケージのさらなる開発に関する議論に参加するよう、useRを心から歓迎します。
包括的な例による基本的な導入は、Fridolin Wild (2016)による書籍で提供されています。Learning Analytics in R, Springer.
フレームワーク
- tmは、Rの総合的なテキストマイニングのフレームワークを提供しています。
- Text Mining Infrastructure in Rの記事Journal of Statistical Softwareは、詳細な概要と、カウントベースの分析方法、テキストクラスタリング、テキスト分類と文字列カーネルのための技術を提供します。
- plugin.dcは、ストレージデバイス(ローカルのファイルやHadoopの分散ファイルシステム)間でコーパスを配布することができます。
- plugin.mailは、Thunderbird(mbox、eml)で使用されるようなアーカイブファイルからメールをインポートするに役立ちます。
- plugin.alcesteは、Alceste形式のファイルで記述されたテキストコーパスをインポートすることができます。
- temisは、時系列分析、コレスポンデンス分析、階層的クラスタリング、用語や文書数、語彙表、用語共起や文書類似度、インポートやコーパスをクリーニングのようなテキストマイニング一連のタスクを実行するための統合ソリューションを提供しているRcommanderプラグインです。
- openNLPは、最大エントロピーモデルを使用し、訓練のためのMAXENT Javaパッケージを使用し、文検出器、トークナイザ、pos-tagger、浅く完全な構文のパーサ、名前付きエンティティ検出器を含む自然言語処理ツールのコレクション、OpenNLPへのRインタフェースを提供します。
- openNLPと一緒に使用される英語とスペイン語のための訓練されたモデルは、それぞれのパッケージenとopenNLPmodels.esとしてhttp://datacube.wu.ac.at/から入手可能です。
- RWekaは、Javaで記述されたデータ・マイニング・タスクのための機械学習アルゴリズムのコレクションであるWekaへのインタフェースです。自然言語処理との関連で特に有用なのは、トークン化およびステミングのための機能です。
- tidytextは、dplyr、ggplot2などの整形ツールを使用したワープロやセンチメント解析のためのテキストマイニングの手段を提供します。
- udpipeは、言語に依存しないトークン化、品詞タグ付け、部分化、依存関係の解析、およびツリーバンクベースの注釈モデルのトレーニングを提供します。
言葉(字句のDB、キーワード抽出、文字列操作、ステミング)
- Rのbaseパッケージは、すでに文字操作ルーチンの豊富なセットを提供します。これらの機能の詳細については、search(keyword = ”character” , package = “base”)を参照してください。
- wordnetはWordNetの英語の大語彙データベースへのRインタフェースを提供します。
- RKEAは、KEA(バージョン0)へのRインタフェースを提供します。KEA(キーフレーズ抽出アルゴリズムのための)は、テキスト文書からキーフレーズを抽出することができます。それはどちらか無料で索引付けのためか、統制語彙とインデックス作成のために使用することができます。
- gsubfnは、むしろ区切り文字でよりコンテンツストリングスから単語を抽出するなどの特定の構文解析タスクに使用することができます。デモ(「gsubfn-gries」)は、自然言語処理コンテキストで、この例を示している。
- textreuseは、文書間の類似度を測定するためのツールセットを提供し、再利用された通路を検出に役立ちます。このパッケージは次を実装しています。
- shingled n-gram, skip n-gram, and other tokenizers
- 類似/非類似度関数
- 対比較
- minhashとlocality sensitiveハッシュアルゴリズム
- 自然言語に適したSmith-Waterman local alignment algorithmのバージョン。
- boilerpipeRは、HTMLファイルからテキストコンテンツを抽出し、サニタイズに役立ちます:boilerpipe Javaライブラリを使用した広告、サイドバー、およびヘッダーの除去。
- tauは、文字エンコーディング、言語、パターンカウント、およびトークン化を扱うようにテキスト処理に必要な基本的な文字列操作や解析ルーチンが含まれています。
- SnowballCは、Rstemとまったく同じAPIを提供していますが、スノーボールプロジェクトからのC libstemmerライブラリのわずかに異なるデザインを使用しています。また、2つ以上の言語をサポートしています。
- stringiは、Unicode(ICU)ライブラリのための国際コンポーネントのR言語のラッパーを提供し、次が可能:
- テキストエンコーディングの変換。
- 任意のロケールの文字列検索と照合。
- テキストのUnicodeの正規化。
- 混合読み出し方向でテキストを扱い(例えば、右から左、左から右) 。
- (異なる集計レベルにトークン化または適切な行の折り返し位置を識別するための )テキスト境界解析。
- stringdistは、Rのネイティブの ‘match’関数のバージョンと一致するおおよその文字列を実装します。(Damerau-Levenshtein、Hamming、Levenshtein、最適な文字列配置)、qgrams(q-gram、余弦、jaccard距離)またはヒューリスティックメトリクス(Jaro、Jaro-Winkler)に基づいて、さまざまな文字列距離を計算できます。soundexの実装も提供されています。キャラクタ・ベクトル間の距離は、エンコーディングを適切に処理しながら、または汎用シーケンスを表す整数ベクトル間で計算することができます。
- Rstem(Omegahatから入手可能)はポーターの語幹アルゴリズムのCバージョンに代わるインタフェースです。
- koRpusは、自動言語検出、ハイフネーション、字句多様性(例えば、型トークン比、HD-D/vocd-D、MTLD)と読みやすさ(例えば、Flesch,SMOG、LIX、Dale-Chall)のいくつかの指標のための関数の多様なコレクションです。詳細については、web pageを参照してください。
- oreは、Onigmo正規表現ライブラリに基づいて、正規表現を処理するためのRの組み込み機能に代わるものを提供します。他の機能の中で、ファーストクラスの正規表現オブジェクト、部分マッチング、関数ベースの置換を提供します。stringiとR baseの実装でore関数の結果を比較するベンチマークはregex-performanceで利用可能です。
- languageRは、データセットと統計的手法を例示する機能、およびRH Baayenの本書で使用されるいくつかの促通ユーティリティ関数を提供します。”Analyzing Linguistic Data: a Practical Introduction to Statistics Using R”, Cambridge University Press, 2008.
- zipfRは、単語頻度分布のためのいくつかの統計的なモデルを提供しています。ユーティリティは、ロードのための機能、単語頻度データを操作し、可視化と語彙成長曲線が含まれています。パッケージには、人口の単語の出現頻度の分布のために、いくつかの統計モデルを実装しています。(このライブラリの名前は、最も有名な単語頻度分布、ジップの法則に由来する。)
- wordcloudは、有名ワードルものと同様の視覚化を提供します。それは、水平方向および垂直方向の周波数によってスケーリングされたフォントサイズに心地よい視覚化の機能を分配します。
- hunspellは、豊富な形態と複雑な単語の複合または文字エンコーディングを持つ言語用に設計されたステマーとスペルチェッカーライブラリです。パッケージは、個々の単語の確認と分析を行うだけでなく、テキスト、latexまたは(Rパッケージ)マニュアルドキュメント内の不適切な単語を検索することもできます。
- phonicsは、Soundex、Metaphone、NYSIIS、Caverphoneなどの発音アルゴリズムのコレクションを提供します。
- tesseractは、ユニコード(UTF-8)をサポートするOCRエンジンであり、100を超える言語をすぐに認識することができます。
- mscsweblm4rは、Microsoft Cognitive Services Web Language Model APIへのインタフェースを提供し、一連の単語が一緒に現れる確率、特定の単語が既存の単語のシーケンスに従う条件付き確率、単語のリストを取得するための確率を計算するために使用できます 与えられた一連の単語に従う可能性が最も高い単語(補完)を作成し、空白(ハッシュタグ、URLなど)を使わずに隣接する単語の文字列にスペースを挿入します。
- mscstexta4rは、Microsoft Cognitive Services Text Analytics APIへのインタフェースを提供し、感情分析、トピック検出、言語検出、およびキーフレーズ抽出を実行するために使用できます。
- sentencepiece(githubから入手可能)は、バイトペアエンコーディング(BPE)またはユニグラム、Char、Wordモデルを作成する教師なしのトークナイザです。
- tokenizersは、テキストをトークンに分割し、混乱したnグラムをサポートし、nグラム、単語、語幹、文章、段落、文字、行、および正規表現をスキップします。
- bpeは、バイトペアエンコーディングとYouTokenToMeライブラリを使用して実装されたテキストを音節トークンに分割するのに役立ちます。
- crfsuiteは、連続データのラベル付けに条件付きランダムフィールドを使用します。
- jiebaRは、中国語テキストセグメンテーション、キーワード抽出、音声タグ付け R用です。
- keypermは、順列検定に基づくキーワード分析の新しいアプローチを実装しています。すなわち、あるコーパスと別のコーパスを比較して、有意に頻度の高い単語を識別します。
意味
- lsaは、Rで潜在的意味解析を行うためのルーチンを提供します。潜在的意味解析(LSA)の基本的な考え方は、テキストには高次(=潜在的意味)構造があり、しかしそれは単語の使い方(例えば、同義語や多義語の使用)によって不明瞭になるということです。与えられた文書-用語行列に対して、切断特異値分解(2モード因子分析)により統計的に導き出された概念指標を用いることで、この変動問題を克服することができます。
- Wild (2016) による論文Representing and Analysing Meaning with LSAでは、詳細な概要と包括的な事例が紹介されている。
- topicmodelsは、Xuan-Hieu Phanと共著者によるギブスサンプリングを使用するフィッティングLDAモデルのためのC++コード、潜在的ディリクレ配分(LDA)モデルとDavid M.Bleiと共著者による相関トピックモデル(CTM)のためのCコードへのインタフェースを提供します。
- BTMは、用語間の共起からテキスト内のトピックを識別するのに役立ちます(したがって、「biterm」トピックモデル、BTM)。
- topicdocは、トピックの品質の評価を支援するために、LDAおよびCTMトピックモデルのトピック固有の診断を提供します。
- ldaは、LSAとtopicmodelsに似て潜在的ディリクレ配分および関連モデルを実装しています。
- stm(Structural Topic Model)は、文書レベルのメタデータを含むことができるトピックモデルの派生物を実装します。このパッケージには、モデル選択、視覚化、およびトピック共変量回帰の推定のためのツールも含まれています。
- kernlabは、作成および完全な文字列、スペクトル、または有界範囲文字列カーネルのような文字列カーネル、と計算することができます。直接入力としてtmが使用する文書フォーマットを使用することができます。
- golgotha(まだCARNには含まれていません)は、特に言語モデリングとテキストの含意のために、トランスフォーマーからの双方向エンコーダー表現(BERT)のラッパーを提供します。
- ruimteholは、ベクトル空間セマンティクスへのニューラルネットワーク機械学習アプローチを提供し、StarSpaceへのインタフェースを実装し、分類、近接度測定、およびモデル管理(トレーニング、予測、さまざまな粒度のテキスト含意のためのいくつかのインタフェース)の手段を提供します。
- skmeansは、クラスタリングは、球面分割をk平均のためのいくつかのアルゴリズムを提供して支援します。
- movMFは、別のクラスタリング代替手段(近似値は、単位長さのベクトルのフォン・ミーゼス・フィッシャー分布が付いています)を提供します。
- svsは、意味ベクトル空間に対する様々な手法(潜在意味解析、確率的潜在意味解析、非負行列分解、EMクラスタリング、潜在クラス解析、コレスポンデンス解析など)の簡単な実装を提供します。
- textirは、テキストや感情マイニングのためのツール群です。
- textcatは、nグラム基づくテキスト分類のためのサポートを提供します。
- textrankは、PageRankを拡張したもので、文の相互関係を計算することによってテキストを要約することができます。
- corporaは、コーパスの頻度データの統計分析のためのユーティリティ関数を提供しています。
- text2vecは、テキストのベクトル化、トピックモデリング(LDA、LSA)、単語埋め込み(GloVe)、類似性のためのツールを提供します。
- word2vecは、テキストベクトル化、トピックモデリング(LDA、LSA)、単語埋め込み(GloVe)、および類似点のためのツールを提供します。
- word2vecは、「word2vec」アルゴリズムの連続bag of wordsとskip-gramの実装により、単語のベクトル表現を学習することができます。この技術は、Mikolovら(2013)による論文Distributed Representations of Words and Phrases and their Compositionalityで詳しく説明されています。
語用論
コーパス
- corporaexplorerは、Shinyを使用して構築されたインタラクティブなWebアプリを使用して、ドキュメントコレクション全体の視覚的な情報検索を促進し、フィルタリングとコーパスレベルおよびドキュメントレベルの視覚化をサポートします。
- textplotは、コーパスおよびドキュメント、文レベルの視覚化のためのさまざまな方法を提供します。
- plugin.factiva、tm.plugin.lexisnexis、tm.plugin.europresseは、Dow Jones Factiva、LexisNexis、Europresse(それぞれ)からプレスとWebコーパスをインポートできます。
R言語 CRAN Task View:自然言語処理
ピンバック:R言語 CRAN Task Views | トライフィールズ