Jkproof

Author:@mao_sum

Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file lib/jkproof. To experiment with that code, run bin/console for an interactive prompt.

Installation

Add this line to your application's Gemfile:

gem 'jkproof'

And then execute:

$ bundle

Or install it yourself as:

$ gem install jkproof

dictionary.yml を任意の場所に追加する

config/dictionary.yml など、好きな場所に辞書ファイルを準備します。

config/dictionary.yml

-
  correct : correct_word_1
  wrongs  :
    - wrong-word-1
    - WrongWord1
-
  correct : CorrectWord2
  wrongs  :
    - wrong_word_2
    - wrongword2

一つの単号に対して、誤りのある単語を複数追加できます。

必ず文字数が多いものから降順になるように並べてください。

# いい例
wrongs  :
  - wrong-word-1
  - WrongWord1
  - Word1

# 悪い例
wrongs  :
  - Word1
  - WrongWord1
  - wrong-word-1
# 悪い例では文章に "WrongWord1" が与えられた場合、 "Word1" を返してしまう

JSONデータを用意する場合

[
  {
    "correct" : "correct-json-word-1",
    "wrongs" : [
      "wrong_json_word_1",
      "WrongJsonWord1"
    ]
  },
  {
    "correct" : "correct-json-word-2",
    "wrongs" : [
      "WrongJson2",
      "Wrong2"
    ]
  }
]

Yahoo APIキーを生成する

https://e.developer.yahoo.co.jp/dashboard/ からAPIキーを生成してください。

Client ID を使用します。

.envファイルを修正する

jkproof/.env.sample をコピーして編集、もしくは既存の .env ファイルに追記してください。

追記する場合

ref: https://github.com/tosite0345/jkproof/blob/master/.env.sample

YAHOO_API_KEY=""
DICTIONARY_YML_PATH=""
NO_FILTER=""

先に作成した辞書ファイルのパスを DICTIONARY_YML_PATH に、Yahoo APIキーを YAHOO_API_KEY にそれぞれ登録してください。

NO_FILTER を設定することで検出する精度を調整することができます。
設定値については こちら のno_filterをご覧ください。

なお、複数の除外項目を設定する場合は NO_FILTER="11,12,13" のようにカンマ区切りの文字列で指定するようお願いいたします。

Usage

# 検出された場合
Jkproof.detect_words_has_error("検知したい文章")
# => [
#   message: "",
#   count:   1,
#   type:    "yml",
#   words:   { type: "local", wrong: WrongWord, correct:CorrectWord },
# ]

# 検出されなかった場合
Jkproof.detect_words_has_error("")
# => [
#   message: "",
#   count:   0,
#   type:    "yml",
#   words:   [],
# ]

# JSONを渡す場合
Jkproof.detect_words_has_error("検知したい文章", json_dictionary)
# => [
#   message: "",
#   count:   1,
#   type:    "json",
#   words:   { type: "local", wrong: WrongWord, correct:CorrectWord },
# ]

# エラーがあった場合
#   -- 処理自体は継続し、Yahooもしくは辞書のうち検知できるほうのみ返す
#   -- どちらも返せない場合は空の配列を返す
# => [
#   message: "x ERROR(s) : error reason.",
#   count:   1,
#   type:    "json",
#   words:   { type: "yahoo", wrong: WrongWord, correct:CorrectWord },
# ]

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/tosite0345/jkproof.