diff options
Diffstat (limited to 'src/tools/analysis/core.ts')
| -rw-r--r-- | src/tools/analysis/core.ts | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/src/tools/analysis/core.ts b/src/tools/analysis/core.ts deleted file mode 100644 index 839fffd3c8..0000000000 --- a/src/tools/analysis/core.ts +++ /dev/null @@ -1,49 +0,0 @@ -const bayes = require('./naive-bayes.js'); - -const MeCab = require('./mecab'); -import Post from '../../server/api/models/post'; - -/** - * 投稿を学習したり与えられた投稿のカテゴリを予測します - */ -export default class Categorizer { - private classifier: any; - private mecab: any; - - constructor() { - this.mecab = new MeCab(); - - // BIND ----------------------------------- - this.tokenizer = this.tokenizer.bind(this); - } - - private tokenizer(text: string) { - const tokens = this.mecab.parseSync(text) - // 名詞だけに制限 - .filter(token => token[1] === '名詞') - // 取り出し - .map(token => token[0]); - - return tokens; - } - - public async init() { - this.classifier = bayes({ - tokenizer: this.tokenizer - }); - - // 訓練データ取得 - const verifiedPosts = await Post.find({ - is_category_verified: true - }); - - // 学習 - verifiedPosts.forEach(post => { - this.classifier.learn(post.text, post.category); - }); - } - - public async predict(text) { - return this.classifier.categorize(text); - } -} |