Skip to main content

Rakuten MA Python

travis-ci.org coveralls.io pyversion latest version Code Health license

Rakuten MA Python (morphological analyzer) is a Python version of Rakuten MA (word segmentor + PoS Tagger) for Chinese and Japanese.

For details about Rakuten MA, See https://github.com/rakuten-nlp/rakutenma

See also http://qiita.com/yukinoi/items/925bc238185aa2fad8a7 (In Japanese)

Contributions are welcome!

Installation

pip install rakutenma

Example

from rakutenma import RakutenMA

# Initialize a RakutenMA instance with an empty model
# the default ja feature set is set already
rma = RakutenMA()

# Let's analyze a sample sentence (from http://tatoeba.org/jpn/sentences/show/103809)
# With a disastrous result, since the model is empty!
print(rma.tokenize("彼は新しい仕事できっと成功するだろう。"))

# Feed the model with ten sample sentences from tatoeba.com
# "tatoeba.json" is available at https://github.com/rakuten-nlp/rakutenma
import json
tatoeba = json.load(open("tatoeba.json"))
for i in tatoeba:
    rma.train_one(i)

# Now what does the result look like?
print(rma.tokenize("彼は新しい仕事できっと成功するだろう。"))

# Initialize a RakutenMA instance with a pre-trained model
rma = RakutenMA(phi=1024, c=0.007812)  # Specify hyperparameter for SCW (for demonstration purpose)
rma.load("model_ja.json")

# Set the feature hash function (15bit)
rma.hash_func = rma.create_hash_func(15)

# Tokenize one sample sentence
print(rma.tokenize("うらにわにはにわにわとりがいる"));

# Re-train the model feeding the right answer (pairs of [token, PoS tag])
res = rma.train_one(
       [["うらにわ","N-nc"],
        ["に","P-k"],
        ["は","P-rj"],
        ["にわ","N-n"],
        ["にわとり","N-nc"],
        ["が","P-k"],
        ["いる","V-c"]])
# The result of train_one contains:
#   sys: the system output (using the current model)
#   ans: answer fed by the user
#   update: whether the model was updated
print(res)

# Now what does the result look like?
print(rma.tokenize("うらにわにはにわにわとりがいる"))

NOTE

Added API

As compared to original RakutenMA, following methods are added:

  • RakutenMA::load(model_path) - Load model from JSON file

  • RakutenMA::save(model_path) - Save model to path

misc

As initial setting, following values are set:

  • rma.featset = CTYPE_JA_PATTERNS # RakutenMA.default_featset_ja

  • rma.hash_func = rma.create_hash_func(15)

  • rma.tag_scheme = “SBIEO” # if using Chinese, set “IOB2”

LICENSE

Apache License version 2.0

CHANGES

0.3.3 (2017-05-22)

  • Bug fix about training

0.3.2 (2017-02-01)

  • Use ujson when possible

  • Enable POS to MeCab style

  • Support Python 3.5 and 3.6

0.3 (2016-04-10)

  • Add CUI ($ rakutenma)

0.2.2 (2016-04-09)

  • Bundle model files (model_ja.json, model_ja_min.json)

  • Support Windows

0.2 (2015-01-10)

  • Support Python 2.6 and 2.7

0.1.1 (2015-01-08)

  • Slightly improve performance

0.1 (2015-01-01)

  • First release.

Metadata

Release files for rakutenma 0.3.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rakutenma 0.3.3
File Size Uploaded
rakutenma-0.3.3.tar.gz 25.0 MB Details

Release files / rakutenma-0.3.3.tar.gz

Download URL rakutenma-0.3.3.tar.gz
Size 25.0 MB
Tags Source
SHA-256 checksum
How to use checksums
2ee2ffe6cf93d7dae805f7e0e1971ef6a40f724a72e92d4de4f498097f776773
BLAKE2b-256 checksum
How to use checksums
b753e2c622a87a70a8f271b8bf8d62147366f619cad41e3ecbb21e4c6acdc540
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.3.3 This release

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.2.3

1 release file

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page