反応を使用してテキストの毒性を検出する


前の記事では、TensorFlowから始める方法を説明しました.単純な線形回帰モデルを作成することから、Posenetとして訓練されたモデルを使用すること.私は非常に読むことをお勧めthis article どのように動作するかを理解する.
今日の記事では、機械学習の知識のないテキスト毒性検出モデルを使うのはどれだけ簡単かをお見せしたいと思います.

テキスト毒性検出とは何か?


毒性検出は、脅迫的な言語、侮辱、猥褻性、アイデンティティベースの憎悪、または性的に明示的な言語などの有毒なコンテンツを含むテキストを検出します.

テキストtocicity例
これはあなたのブラウザでは、不要なコメント/意見を防止し、これらのコンテンツのレビュープロセスをスピードアップするesierされます.
しかし、これはとても複雑に見えます.ああ、あなたのための良いニュース!あなたはこのモデルを使用して専門家の学習エキスパートにする必要はありません.見てみましょう.

フック


私はそれを使用する方法を簡素化する反応フックを書いたので、コードの1行でフックを使用するだけでテキストの予測を得ることができます
import useTextToxicity from 'react-text-toxicity'

// Usage inside your component or custom hook
const predictions = useTextToxicity('This is an example')
/*
  {
    "label": "identity_attack",
    "match": false,
    "probability": "3.40%",
    "probabilities": [0.9659664034843445, 0.03403361141681671],
  },
  {
    "label": "insult",
    "match": true,
    "probability": "91.8%",
    "probabilities": [0.08124706149101257, 0.9187529683113098],
  },
  ...
*/
NPMパッケージをアップロードしました.
yarn add react-text-toxicity
とギタブレポ👉 https://github.com/aralroca/react-text-toxicity
我々は、接続することができますuseTextToxicity フックをするstate 使用する
const [value, setValue] = useState("");
const predictions = useTextToxicity(value);

//...
<textarea
  value={value}
  onChange={(e) => setValue(e.target.value)}
/>
この方法は、毎回値が変化すると、予測は更新されます(我々は“オンザフライ”を予測することができます).
以下に例を示します.
import React, { Fragment, useState } from "react";
import useTextToxicity from "react-text-toxicity";

function Toxicity({ predictions }) {
  const style = { margin: 10 };

  if (!predictions) return <div style={style}>Loading predictions...</div>;

  return (
    <div style={style}>
      {predictions.map(({ label, match, probability }) => (
        <div style={{ margin: 5 }} key={label}>
          {`${label} - ${probability} - ${match ? "🤢" : "🥰"}`}
        </div>
      ))}
    </div>
  );
}

export default function Index() {
  const [value, setValue] = useState("");

  // predictions are updated every time the value is updated
  const predictions = useTextToxicity(value);

  return (
    <div style={{ display: "flex" }}>
      <div>
        <div>Write something</div>
        <textarea
          style={{ width: 300, height: 200 }}
          value={value}
          onChange={(e) => setValue(e.target.value)}
        />
      </div>
      {value && <Toxicity predictions={predictions} />}
    </div>
  );
}

「フック」の下で


フードの下で、フックはTensorFlowを使用しています.JS毒性モデル
  • https://github.com/tensorflow/tfjs-models/tree/master/toxicity
  • 同じ外部反応を実装する必要がある場合は、このrepoを使用できます.

    結論


    時には我々のマシンの学習と/またはTorsorflowについての我々の心を切断するとき、我々はそれがあまりにも複雑だと思う.しかし、我々は頭痛なしで使用することができます中古モデルです.
    反応フックの使用は、コードの1つの単純な線の予め訓練されたモデルからデータ予測を容易にします.
    今、私はこれらのTensorFlowモデルを使用して実験を奨励したり、プロジェクトでそれらを使用して開始!