# rubihuri
日本語テキストに対して漢字の読み方や発音を自動的に付与するPythonライブラリです。
## インストール
**MeCab**と**mecab-ipadic-NEologd**(推奨辞書)のインストールが必要になります。
### Ubuntu の場合
MeCabのインストール
```
$ sudo apt install mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file
```
mecab-ipadic-NEologdのインストール
```
# 辞書元になるデータを GitHub からクローン
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
# クローン先のリポジトリに移動
$ cd mecab-ipadic-neologd
# 辞書のインストール
$ ./bin/install-mecab-ipadic-neologd -n -y
```
辞書のインストールされているパスの確認
```
$ echo `mecab-config --dicdir`"/mecab-ipadic-neologd"
```
[mecab-ipadic-NEologd 公式キュメント](https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md#%E4%BE%8B-%E5%8B%95%E4%BD%9C%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
### Windowsの場合
mecab-python3 を使っているので**WindowsにMeCab本体**のインストールは不要です。
wslを使って mecab-ipadic-NEologd のインストール
> wslとはWindows上で簡単にLinuxを動かすためのものです。
[Microsoftのwslインストールドキュメント](https://learn.microsoft.com/ja-jp/windows/wsl/install#install-wsl-command)
PowerShellまたはコマンドプロンプトを管理者モードで開き以下のコマンドを実行。
```
wsl --install
```
インストール後、メッセージに従ってPCの再起動が必要になります。
再起動すると、ユーザ名の設定する必要があります。
設定すると以下の様にUbuntuにログインできます。
```
ユーザ名@DESKTOP-PJH30LR:
```
必要なパッケージのインストールをします。
```
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install install make automake autoconf autotools-dev m4 mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file unzip
```
mecab-ipadic-NEologdのインストール
```
# 辞書元になるデータを GitHub からクローン
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
# クローン先のリポジトリに移動
$ cd mecab-ipadic-neologd
# 辞書のインストール
$ ./bin/install-mecab-ipadic-neologd -n -y
```
辞書のインストールされているパスの確認
```
$ echo `mecab-config --dicdir`"/mecab-ipadic-neologd"
```
windowの任意のドライブに辞書をコピーするディレクトリを新しく作ります。
エクスプローラでもコマンドでもどちらでも構いません。
例でコマンドでwindowのCドライブに dicmecab-ipadic-neologd ディレクトリを新しく作ります。
> **/mnt/c** はWindowsのCドライブを表します
```
$ mkdir /mnt/c/dicmecab-ipadic-neologd
```
先ほど作ったwindowのCドライブの dicmecab-ipadic-neologd に辞書をコピーします。
> /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/ は辞書のインストール先の場所を確認して出てきたパスになります。
```
$ cp /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/* /mnt/c/dicmecab-ipadic-neologd
```
以下のコマンドで Ubuntu を抜けることができます。
```
exit
```
### rubihuriのインストール
```bash
pip install rubihuri
```
## 使い方
### 基本的な使用方法
```py
from rubihuri import Rubihuri
# mecab-unidic-NEologd辞書を使用してRubihuriのインスタンスを作成
rubihuri = Rubihuri(dic_path="path/to/mecab-ipadic-neologd") # パスは環境によって異なる場合があります
# テスト用のテキスト
text = "今日の天気は晴れのち雨でした。"
# ひらがなで読みを付与
result = rubihuri.yomi_hiragana(text)
print(result) # {今日の天気<きょうのてんき>}は{晴れ<はれ>}のち{雨<あめ>}でした
# カタカナで読みを付与
result = rubihuri.yomi_katakana(text)
print(result) # {今日の天気<キョウノテンキ>}は{晴れ<ハレ>}のち{雨<アメ>}でした
# ひらがなで発音を付与
result = rubihuri.hatuon_hiragana(text)
print(result) # {今日の天気<きょーのてんき>}は{晴れ<はれ>}のち{雨<あめ>}でした
# カタカナで発音を付与
result = rubihuri.hatuon_katakana(text)
print(result) # {今日の天気<キョーノテンキ>}は{晴れ<ハレ>}のち{雨<アメ>}でした
```
### カスタム設定
```py
from rubihuri import Rubihuri
rubihuri1 = Rubihuri(
dic_path="path/to/mecab-ipadic-neologd", # 辞書パス
left_brace="", # 漢字を囲む左括弧
right_brace="", # 漢字を囲む右括弧
left_delimiter="(", # 読み/発音を囲む左記号
right_delimiter=")" # 読み/発音を囲む右記号
)
text = "今日の天気は晴れのち雨でした。"
result = rubihuri1.yomi_hiragana(text)
print(result) # 今日の天気(きょうのてんき)は晴れ(はれ)のち雨(あめ)でした。
```
## ライセンス
このプロジェクトのライセンスはMIT Licenseです。
Raw data
{
"_id": null,
"home_page": null,
"name": "rubihuri",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "ruby, rubihuri, furigana, kanji, reading, pronunciation, converter, Japanese, reading-helper",
"author": "massao000",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/5a/80/da3260cf7ac2ca82e78bcf14a8d0ec7e9afe4829cabd87a01e14972398e3/rubihuri-0.1.1.tar.gz",
"platform": null,
"description": "# rubihuri\r\n\r\n\u65e5\u672c\u8a9e\u30c6\u30ad\u30b9\u30c8\u306b\u5bfe\u3057\u3066\u6f22\u5b57\u306e\u8aad\u307f\u65b9\u3084\u767a\u97f3\u3092\u81ea\u52d5\u7684\u306b\u4ed8\u4e0e\u3059\u308bPython\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3059\u3002\r\n\r\n## \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\r\n\r\n**MeCab**\u3068**mecab-ipadic-NEologd**\uff08\u63a8\u5968\u8f9e\u66f8\uff09\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002\r\n\r\n### Ubuntu \u306e\u5834\u5408\r\n\r\nMeCab\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\r\n```\r\n$ sudo apt install mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file\r\n```\r\n\r\nmecab-ipadic-NEologd\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\r\n```\r\n# \u8f9e\u66f8\u5143\u306b\u306a\u308b\u30c7\u30fc\u30bf\u3092 GitHub \u304b\u3089\u30af\u30ed\u30fc\u30f3\r\n$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git\r\n\r\n# \u30af\u30ed\u30fc\u30f3\u5148\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u79fb\u52d5\r\n$ cd mecab-ipadic-neologd\r\n\r\n# \u8f9e\u66f8\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\r\n$ ./bin/install-mecab-ipadic-neologd -n -y\r\n```\r\n\r\n\u8f9e\u66f8\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u30d1\u30b9\u306e\u78ba\u8a8d\r\n```\r\n$ echo `mecab-config --dicdir`\"/mecab-ipadic-neologd\"\r\n```\r\n\r\n[mecab-ipadic-NEologd \u516c\u5f0f\u30ad\u30e5\u30e1\u30f3\u30c8](https://github.com/neologd/mecab-ipadic-neologd/blob/master/README.ja.md#%E4%BE%8B-%E5%8B%95%E4%BD%9C%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)\r\n\r\n### Windows\u306e\u5834\u5408\r\n\r\nmecab-python3 \u3092\u4f7f\u3063\u3066\u3044\u308b\u306e\u3067**Windows\u306bMeCab\u672c\u4f53**\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306f\u4e0d\u8981\u3067\u3059\u3002\r\n\r\nwsl\u3092\u4f7f\u3063\u3066 mecab-ipadic-NEologd \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\r\n\r\n> wsl\u3068\u306fWindows\u4e0a\u3067\u7c21\u5358\u306bLinux\u3092\u52d5\u304b\u3059\u305f\u3081\u306e\u3082\u306e\u3067\u3059\u3002\r\n\r\n[Microsoft\u306ewsl\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8](https://learn.microsoft.com/ja-jp/windows/wsl/install#install-wsl-command)\r\n\r\nPowerShell\u307e\u305f\u306f\u30b3\u30de\u30f3\u30c9\u30d7\u30ed\u30f3\u30d7\u30c8\u3092\u7ba1\u7406\u8005\u30e2\u30fc\u30c9\u3067\u958b\u304d\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3002\r\n```\r\nwsl --install\r\n```\r\n\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306b\u5f93\u3063\u3066PC\u306e\u518d\u8d77\u52d5\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002\r\n\r\n\r\n\u518d\u8d77\u52d5\u3059\u308b\u3068\u3001\u30e6\u30fc\u30b6\u540d\u306e\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\r\n\u8a2d\u5b9a\u3059\u308b\u3068\u4ee5\u4e0b\u306e\u69d8\u306bUbuntu\u306b\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u307e\u3059\u3002\r\n```\r\n\u30e6\u30fc\u30b6\u540d@DESKTOP-PJH30LR:\r\n```\r\n\r\n\u5fc5\u8981\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u3057\u307e\u3059\u3002\r\n```\r\n$ sudo apt update\r\n$ sudo apt upgrade\r\n$ sudo apt install install make automake autoconf autotools-dev m4 mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file unzip\r\n```\r\n\r\nmecab-ipadic-NEologd\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\r\n```\r\n# \u8f9e\u66f8\u5143\u306b\u306a\u308b\u30c7\u30fc\u30bf\u3092 GitHub \u304b\u3089\u30af\u30ed\u30fc\u30f3\r\n$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git\r\n\r\n# \u30af\u30ed\u30fc\u30f3\u5148\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u79fb\u52d5\r\n$ cd mecab-ipadic-neologd\r\n\r\n# \u8f9e\u66f8\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\r\n$ ./bin/install-mecab-ipadic-neologd -n -y\r\n```\r\n\r\n\u8f9e\u66f8\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u30d1\u30b9\u306e\u78ba\u8a8d\r\n```\r\n$ echo `mecab-config --dicdir`\"/mecab-ipadic-neologd\"\r\n```\r\n\r\nwindow\u306e\u4efb\u610f\u306e\u30c9\u30e9\u30a4\u30d6\u306b\u8f9e\u66f8\u3092\u30b3\u30d4\u30fc\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u65b0\u3057\u304f\u4f5c\u308a\u307e\u3059\u3002\r\n\u30a8\u30af\u30b9\u30d7\u30ed\u30fc\u30e9\u3067\u3082\u30b3\u30de\u30f3\u30c9\u3067\u3082\u3069\u3061\u3089\u3067\u3082\u69cb\u3044\u307e\u305b\u3093\u3002\r\n\r\n\u4f8b\u3067\u30b3\u30de\u30f3\u30c9\u3067window\u306eC\u30c9\u30e9\u30a4\u30d6\u306b dicmecab-ipadic-neologd \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u65b0\u3057\u304f\u4f5c\u308a\u307e\u3059\u3002\r\n\r\n> **/mnt/c** \u306fWindows\u306eC\u30c9\u30e9\u30a4\u30d6\u3092\u8868\u3057\u307e\u3059\r\n```\r\n$ mkdir /mnt/c/dicmecab-ipadic-neologd\r\n```\r\n\r\n\u5148\u307b\u3069\u4f5c\u3063\u305fwindow\u306eC\u30c9\u30e9\u30a4\u30d6\u306e dicmecab-ipadic-neologd \u306b\u8f9e\u66f8\u3092\u30b3\u30d4\u30fc\u3057\u307e\u3059\u3002\r\n> /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/ \u306f\u8f9e\u66f8\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5148\u306e\u5834\u6240\u3092\u78ba\u8a8d\u3057\u3066\u51fa\u3066\u304d\u305f\u30d1\u30b9\u306b\u306a\u308a\u307e\u3059\u3002\r\n```\r\n$ cp /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/* /mnt/c/dicmecab-ipadic-neologd\r\n```\r\n\r\n\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067 Ubuntu \u3092\u629c\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\r\n```\r\nexit\r\n```\r\n\r\n\r\n### rubihuri\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\r\n\r\n```bash\r\npip install rubihuri\r\n```\r\n\r\n## \u4f7f\u3044\u65b9\r\n\r\n### \u57fa\u672c\u7684\u306a\u4f7f\u7528\u65b9\u6cd5\r\n```py\r\nfrom rubihuri import Rubihuri\r\n\r\n# mecab-unidic-NEologd\u8f9e\u66f8\u3092\u4f7f\u7528\u3057\u3066Rubihuri\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u6210\r\nrubihuri = Rubihuri(dic_path=\"path/to/mecab-ipadic-neologd\") # \u30d1\u30b9\u306f\u74b0\u5883\u306b\u3088\u3063\u3066\u7570\u306a\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\r\n\r\n# \u30c6\u30b9\u30c8\u7528\u306e\u30c6\u30ad\u30b9\u30c8\r\ntext = \"\u4eca\u65e5\u306e\u5929\u6c17\u306f\u6674\u308c\u306e\u3061\u96e8\u3067\u3057\u305f\u3002\"\r\n\r\n# \u3072\u3089\u304c\u306a\u3067\u8aad\u307f\u3092\u4ed8\u4e0e\r\nresult = rubihuri.yomi_hiragana(text)\r\nprint(result) # {\u4eca\u65e5\u306e\u5929\u6c17<\u304d\u3087\u3046\u306e\u3066\u3093\u304d>}\u306f{\u6674\u308c<\u306f\u308c>}\u306e\u3061{\u96e8<\u3042\u3081>}\u3067\u3057\u305f\r\n\r\n# \u30ab\u30bf\u30ab\u30ca\u3067\u8aad\u307f\u3092\u4ed8\u4e0e\r\nresult = rubihuri.yomi_katakana(text)\r\nprint(result) # {\u4eca\u65e5\u306e\u5929\u6c17<\u30ad\u30e7\u30a6\u30ce\u30c6\u30f3\u30ad>}\u306f{\u6674\u308c<\u30cf\u30ec>}\u306e\u3061{\u96e8<\u30a2\u30e1>}\u3067\u3057\u305f\r\n\r\n# \u3072\u3089\u304c\u306a\u3067\u767a\u97f3\u3092\u4ed8\u4e0e\r\nresult = rubihuri.hatuon_hiragana(text)\r\nprint(result) # {\u4eca\u65e5\u306e\u5929\u6c17<\u304d\u3087\u30fc\u306e\u3066\u3093\u304d>}\u306f{\u6674\u308c<\u306f\u308c>}\u306e\u3061{\u96e8<\u3042\u3081>}\u3067\u3057\u305f\r\n\r\n# \u30ab\u30bf\u30ab\u30ca\u3067\u767a\u97f3\u3092\u4ed8\u4e0e\r\nresult = rubihuri.hatuon_katakana(text)\r\nprint(result) # {\u4eca\u65e5\u306e\u5929\u6c17<\u30ad\u30e7\u30fc\u30ce\u30c6\u30f3\u30ad>}\u306f{\u6674\u308c<\u30cf\u30ec>}\u306e\u3061{\u96e8<\u30a2\u30e1>}\u3067\u3057\u305f\r\n```\r\n\r\n### \u30ab\u30b9\u30bf\u30e0\u8a2d\u5b9a\r\n\r\n```py\r\nfrom rubihuri import Rubihuri\r\n\r\nrubihuri1 = Rubihuri(\r\n dic_path=\"path/to/mecab-ipadic-neologd\", # \u8f9e\u66f8\u30d1\u30b9\r\n left_brace=\"\", # \u6f22\u5b57\u3092\u56f2\u3080\u5de6\u62ec\u5f27\r\n right_brace=\"\", # \u6f22\u5b57\u3092\u56f2\u3080\u53f3\u62ec\u5f27\r\n left_delimiter=\"(\", # \u8aad\u307f/\u767a\u97f3\u3092\u56f2\u3080\u5de6\u8a18\u53f7\r\n right_delimiter=\")\" # \u8aad\u307f/\u767a\u97f3\u3092\u56f2\u3080\u53f3\u8a18\u53f7\r\n)\r\n\r\ntext = \"\u4eca\u65e5\u306e\u5929\u6c17\u306f\u6674\u308c\u306e\u3061\u96e8\u3067\u3057\u305f\u3002\"\r\nresult = rubihuri1.yomi_hiragana(text)\r\nprint(result) # \u4eca\u65e5\u306e\u5929\u6c17(\u304d\u3087\u3046\u306e\u3066\u3093\u304d)\u306f\u6674\u308c(\u306f\u308c)\u306e\u3061\u96e8(\u3042\u3081)\u3067\u3057\u305f\u3002\r\n```\r\n\r\n## \u30e9\u30a4\u30bb\u30f3\u30b9\r\n\r\n\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30e9\u30a4\u30bb\u30f3\u30b9\u306fMIT License\u3067\u3059\u3002\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A library for adding readings and pronunciations to Kanji, numbers and alphabets",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://github.com/massao000/rubihuri",
"Repository": "https://github.com/massao000/rubihuri"
},
"split_keywords": [
"ruby",
" rubihuri",
" furigana",
" kanji",
" reading",
" pronunciation",
" converter",
" japanese",
" reading-helper"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c271b06d8c52f01ffb5aaecb56503499a0377a915db79d1ede4db97037607ea3",
"md5": "43f158af1a40426d1a824658f5a1a35a",
"sha256": "9e1d393db82dd70fd16470220541958c32e15ea302922b6da390d092cf8cf078"
},
"downloads": -1,
"filename": "rubihuri-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "43f158af1a40426d1a824658f5a1a35a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 5728,
"upload_time": "2025-02-10T15:02:44",
"upload_time_iso_8601": "2025-02-10T15:02:44.523450Z",
"url": "https://files.pythonhosted.org/packages/c2/71/b06d8c52f01ffb5aaecb56503499a0377a915db79d1ede4db97037607ea3/rubihuri-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5a80da3260cf7ac2ca82e78bcf14a8d0ec7e9afe4829cabd87a01e14972398e3",
"md5": "e4a0a12d3d74f72e118b4be23faeb747",
"sha256": "9941463b6da34bb68ea8bf691158bf769e6cabf055addcb1d3e33b266d580e6c"
},
"downloads": -1,
"filename": "rubihuri-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "e4a0a12d3d74f72e118b4be23faeb747",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 5469,
"upload_time": "2025-02-10T15:02:45",
"upload_time_iso_8601": "2025-02-10T15:02:45.852644Z",
"url": "https://files.pythonhosted.org/packages/5a/80/da3260cf7ac2ca82e78bcf14a8d0ec7e9afe4829cabd87a01e14972398e3/rubihuri-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-10 15:02:45",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "massao000",
"github_project": "rubihuri",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "rubihuri"
}