正規表現の基礎

Rで学ぶ自然言語処理入門

Kasey Jones

Research Data Scientist

自然言語処理とは?

NLP:

  • 文章を分析・理解するためにコンピュータを用いる分野

扱うトピック:

  • テキスト分類
  • トピックモデル
  • 固有表現抽出
  • 感情分析
Rで学ぶ自然言語処理入門

正規表現とは?

  • テキスト検索に使う文字列パターン
  • 例:
    • コマンドラインでディレクトリ内のファイル検索
    • 特定のパターンを含む記事の抽出
    • 特定の文字列の置換
    • など
Rで学ぶ自然言語処理入門

words <- c("DW-40", "Mike's Oil", "5w30", "Joe's Gas", "Unleaded", "Plus-89")
# 数字を探す
grep("\\d", words, value = TRUE)
[1] 1 3 6
# アポストロフィを探す
grep("\\'", words, value = TRUE)
[1] "Mike's Oil"     "Joe's Gasoline"
Rで学ぶ自然言語処理入門

正規表現の例

パターン 一致するテキスト R の例 例文
\w 英数字1文字 gregexpr(pattern ='\w', <text>) a
\d 数字1文字 gregexpr(pattern ='\d', text) 1
\w+ 任意長の英数字 gregexpr(pattern ='\w+', text) word
\d+ 任意長の数字 gregexpr(pattern ='\d+', text) 1234
\s 空白 gregexpr(pattern ='\s', text) ' '
\S 非空白1文字 gregexpr(pattern ='\S', text) word
Rで学ぶ自然言語処理入門

R の例

関数 目的 構文
grep ベクター内でパターン一致を検索 grep(pattern ='\w', x = <vector>, value = F)
gsub 文字列/ベクター内の全一致を置換 gsub(pattern ='\d+', replacement = "", x = <vector>)
Rで学ぶ自然言語処理入門

RegEx の練習

1 https://regexone.com/lesson/matching_characters
Rで学ぶ自然言語処理入門

コードを書いてみましょう!

Rで学ぶ自然言語処理入門

Preparing Video For Download...