Skip to content

Convert Kansuji characters in strings to Arabic numerals using MeCab in R

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

indenkun/kansuji2arabic.MeCab

Repository files navigation

kansuji2arabic.MeCab

{kansuji2arabic.MeCab}は文字列中の漢数字をアラビア数字に変換するための関数を含むパッケージで、{zipangu}kansuji2arbic_str()MeCabを使用し形態素解析を行った品詞細分類上で数と判定された漢数字のみをアラビア数字に変換するように改変したものです。

処理にMeCabを使用しているので、MeCabが使用する辞書によって結果(変換精度)は異なります。

Imports

Rパッケージ以外の必要ソフトウェア

  • MeCab

MeCabについてはMeCab: Yet Another Part-of-Speech and Morphological Analyzerに詳細があります。

Rパッケージ

  • {RMeCab}
  • {stringr}
  • {zipangu}
  • {arabic2kansuji}
  • {purrr}
  • {stats}
  • {utils}

{RMeCab}はCRANに登録されていないパッケージです。

{RMeCab}アールメカブ - RMeCabに詳細があります。

Installation

remotes::install_github("indenkun/kansuji2arabic.MeCab")

でインストールできます。

Example

library(kansuji2arabic.MeCab)

{kansuji2arabc.MeCab}kansuji2arabic_str_MeCab()のみを含みます。

基本動作は、{zipangu}kansuji2arabic_str()と同じで、文字列中の漢数字をアラビア数字に漢数字が表す数で変換するものです。

kansuji2arabic_str_MeCab("東京都新宿区西新宿二丁目八-一")
#> [1] "東京都新宿区西新宿2丁目8-1"

上記の例(東京都庁の住所)ではzipangu::kansuji2arabic_str()と同じ結果になりますが、次の例(徳島県庁の住所)では

zipangu::kansuji2arabic_str("徳島県徳島市万代町一-一")
#> [1] "徳島県徳島市10000代町1-1"
kansuji2arabic_str_MeCab("徳島県徳島市万代町一-一")
#> [1] "徳島県徳島市万代町1-1"

と、万代町を固有名詞とMeCabが判定することで万を10000に変換することを避けることができます(MeCabのデフォルトの辞書の場合)。

ただし、デフォルトの辞書の場合は一月、二月という月が品詞細分類で副詞可能と判定されるため、

kansuji2arabic_str_MeCab("一月一日")
#> [1] "一月1日"

となってしまいますが、MeCab(辞書)の処理に依存するものであり仕様です。使用する辞書を変更するとうまく変換できるかもしれません(未検証です)。

この他にもMeCab側で数を表す漢数字を品詞細分類で数と判定していない場合には、うまく漢数字からアラビア数字に意図した形に変換できません。

また、未知語の処理についてもMeCabは優れていますが、その上で固有明治相当の漢数字が数と判定された場合には固有名詞の漢数字もアラビア数字に変換します。

About

Convert Kansuji characters in strings to Arabic numerals using MeCab in R

Topics

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages