テキスト解析で考慮すべき13のポイント【随時更新予定】
No | 大項目 | 小項目 | DB / Tools | 備考 |
---|---|---|---|---|
1 | タスク選定 | テキストマイニング / 固有表現認識 (NER) / その他 | ||
2 | 言語 | 英語 / 日本語 / (機械)翻訳された文章 / その他 | 機械翻訳: Python/Googletrans, DeepL | 英: アクセス可能なWebソースが多い 日: 全体の2%程度 |
3 | 対象条件 | 期間 / 地域 | ||
4 | 情報ソース | 論文 / 特許 / SNS / Web / 書籍 / その他 | Google / Google Scholar / PubMed / Twitter / Yahoo | |
5 | データ取得方法 | キーワード検索 / LOD・RDFダンプ / Webスクレイピング / PDFファイル / OCR / 書籍 / その他 | PubMed: R/RISmed Webスクレイピング: R/Rselenium, R/rvest DB: Wikipedia, Wikidata |
|
6 | データ形式 | テキスト / キーワード / 画像 / 図表 | テキスト: 一次情報 キーワード: 要約情報、キュレーション有り(二次情報) |
|
7 | 取得データサイズ | バイトサイズ / ファイル数 / ページ数 | ||
8 | データの質 | 動的データ(データ取得の再現性) / 静的データ / クオリティ(誤字・脱字) | ||
9 | 前処理 | フィルタリング(除外要件) / リサンプリング (再抽出) / データクレンジング | ||
10 | NLP (自然言語処理) | エンティティリンキング / 形態素解析 / 文字列距離 / 文節係受け解析 / 複合語解析 / 意味解釈 / 機械学習 | (形態素解析) 英語: TreeTagger, nltk, R/koRpus, R/nltk4r 日本語: MeCab/RMeCab, Suadachi/Suadachipy, JUMAN, ChaSen 中国語: NLPIR 多言語: MTMineR, TreeTagger |
|
11 | 後処理 (post-NLP) | |||
12 | 二次的データ解析 | テキストマイニング / 機械学習 | ワードクラウド: R/wordcloud2 共起解析: R/cooccur, R/RMeCab ネットワーク作図: R/igraph, R/visNetwork 特徴量解析: Python/word2vec, R/wordVectors DL: Keras/Tensorflow, PyTorch |
テキストマイニング: テキストデータから有益な情報・知識を取り出す技術の総称 |
13 | 評価・解釈 |
Rプログラム
今回、上記のテーブルを作成するにあたり、 gistファイルを読み込んで、knitr::kableのpipをCSV出力してみた。
次に、file.csvをエクセルで開いて、はてなブログにコピペした。
以下、Rプログラムを示す。
#パッケージのインストール install.packages(c("knitr", "magrittr", "readr")) #パッケージのロード library(knitr) library(magrittr) library(readr) #データロード Dat <- readr::read_csv("https://gist.githubusercontent.com/kumeS/d714a366f869be19afa321382f863c95/raw/71c375551403a912dbe189b5e2385c83b0eb91d3/textAnalysisWorkflow.csv") Dat[is.na(Dat)] <- "" CaptionText <- "テキスト解析で考慮すべき13のポイント【随時更新予定】" #pipテーブルの表示 Dat %>% head() %>% knitr::kable(format = "pipe", booktabs = T, caption = CaptionText, align = c("c", "l", "l", "l", "l")) Dat0 <- as.data.frame(Dat) #フォントサイズを小さく Size <- 40 for(n in 1:nrow(Dat)){ for(m in 2:ncol(Dat)){ if(Dat0[n, m] != ""){ Dat0[n, m] <- paste0('<span style="font-size: ', Size, '%">', Dat[n, m], '</span>') }}} #pipテーブルの作成 Dat0 %>% knitr::kable(format = "pipe", booktabs = T, caption = CaptionText, align = c("c", "l", "l", "l", "l")) %>% as.character() %>% as.data.frame() %>% readr::write_excel_csv(file="file.csv")