Skip to content

Commit

Permalink
feat: add config
Browse files Browse the repository at this point in the history
  • Loading branch information
azu committed Jun 18, 2021
1 parent 810ffdf commit f77e7e0
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 6 deletions.
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,20 +68,22 @@ twitter-archives/

`yarn detect``--fromDate YYYY-MM-DD``--toDate YYYY-MM-DD` で対象のTweetsの日付範囲を指定できます。

削除候補を推定する実装アルゴリズム
削除候補を推定する実装アルゴリズムは次の通りです。

- [x] textlintでの[放送禁止用語](https://github.com/hata6502/textlint-rule-no-hoso-kinshi-yogo)[不適切表現](https://github.com/textlint-ja/textlint-rule-ja-no-inappropriate-words)のチェック
- [x] ネガティブ(感情極性値ベース)の推定
- [x] ユーザー定義の許可リスト、不許可リスト

[config.js](./config.js)でそれぞれの仕組みを利用するかの設定ができます。

:memo: 基本的にfalse positiveを含んだ過剰な削除候補を作成します。削除候補をチェックして実際に削除する候補のみを `data/will-delete-tweets.json` に残してください。

ユーザー定義の辞書で削除候補に追加、削除できます。
次ののファイルに定義することで、自動的に`yarn detect`が処理します。
次のファイルに定義することで、自動的に`yarn detect`が処理します。

#### `allow-id.yaml`

削除しないTweetsの`id`を指定できます。
削除しないTweetの`id`を指定できます。

たとえば、`https://twitter.com/twitter/status/123456765432` を削除対象から外す場合は次のように定義できます。

Expand Down
18 changes: 18 additions & 0 deletions config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
export const config = {
// textlintベース
textlint: {
enabled: true
},
// 感情極性値ベース
negaposi: {
enabled: true,
// -1 ~ 1 の範囲で指定可能
// 感情極性値が-0.3未満の場合が対象となる
minScore: -0.3
},
// 辞書ベース
// disallow.yaml
dictionary: {
enabled: true
}
};
22 changes: 19 additions & 3 deletions scripts/worker.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import analyze from "negaposi-analyzer-ja";
import path from "path";
import fsStream from "fs";
import { fileURLToPath } from "url";
import { config } from "../config.js";

const __dirname = path.dirname(fileURLToPath(import.meta.url));
const kernel = new TextlintKernel();
Expand All @@ -23,7 +24,12 @@ const kernel = new TextlintKernel();
* @param {import("./types/output.ts").LineTweet} tweet
* @returns {Promise<import(("./detect.ts").CheckResult>}
*/
const textlint = (tweet) => {
const textlint = async (tweet) => {
if (!config.textlint.enabled) {
return {
ok: true
};
}
return kernel.lintText(tweet.text, {
ext: ".txt",
filePath: tweet.id + ".txt",
Expand Down Expand Up @@ -70,6 +76,11 @@ const textlint = (tweet) => {
* @returns {Promise<import(("./detect.ts").CheckResult>}
*/
const checkNegaposi = async (tweet) => {
if (!config.negaposi.enabled) {
return {
ok: true
};
}
if (!tweet.text) {
return {
ok: true
Expand All @@ -87,11 +98,11 @@ const checkNegaposi = async (tweet) => {
// ネガティブな単語に対する補正値(スコアに乗算)
negativeCorrections: 1
});
if (score < -0.3) {
if (score < config.negaposi.minScore) {
return {
ok: false,
score,
message: "感情極性値が0.3未満"
message: `感情極性値が${config.negaposi.minScore}未満`
};
}
return {
Expand Down Expand Up @@ -129,6 +140,11 @@ const DISALLOW_LIST = (() => {
* @returns {Promise<import(("./detect.ts").CheckResult>}
*/
const checkDisallow = async (tweet) => {
if (!config.dictionary.enabled) {
return {
ok: true
};
}
if (DISALLOW_LIST.length === 0) {
return {
ok: true
Expand Down

0 comments on commit f77e7e0

Please sign in to comment.