自分のエンティティでNERの空白のモデルを訓練したいと思います。これを行うために、私は(私は関連する各列に1例の行を提供します)。CSV形式で、現在で、次の形式でエンティティタグを備えたデータセットを使用する必要があります。SpaCy NERのトレーニングデータセットをフォーマットする
コラム:文を
値:[ 'たい; @コマンド; 2; 6'、 'りんご'; 7;フルーツ@ 13' ]
:データ値:私はりんご
列をしたいです
コラム:エンティティ
値:
値をentity_types:私は列が
@fruitを@コマンドボット/ @コマンド@;ボット/ @食品/ @フルーツ@
SpaCyのNERを訓練するためには、訓練データがjson i nは次の形式:
TRAIN_DATA = [
('Who is Shaka Khan?', {
'entities': [(7, 17, 'PERSON')]
}),
('I like London and Berlin.', {
'entities': [(7, 13, 'LOC'), (18, 24, 'LOC')]
})
]
Link to the relevant part in the SpaCy Docs
私はスペイシーが必要とする形式にcsvファイルからデータをフォーマットし直すことができる方法のための解決策を見つけることを試みたが、私はのように失敗しましたまだ。データセットには、テキスト文字列、エンティティ名、エンティティタイプ、エンティティオフセットのすべての必要な情報が含まれていますが、正しい形式で取得する方法はわかりません。
私はこれをどのように達成するかに関するすべての助けに感謝します!
感謝:
これは、あなたがこのように見えるデータを訓練与える必要がありますあなたの答えは本当に私を助けてくれていて、私が理解しようとしていたものです! コードが抽出されたデータにどのように作用するのか分かりますが、CSV抽出プロセスのステップがまだありません。あなたは、CSVには1つの文字列にたくさんのものが含まれていましたが、私はすべてのものをハックして、 'sentence'列と10の' data'列を含むpandas dfを残しました。 – Dionysos
したがって、 'data 'セルには、' 'want' '、' @command'、2、6'や '' NaN'のようなものが含まれています。あなたが例として挙げた形式、あるいはより具体的には、この形式とはどのようなものなのでしょうか? 辞書の中にネストされたリストの中にネストされたタプルで構成されていると仮定していますか? – Dionysos
はい - 目的の形式は、文字列(テキスト)と辞書を含むタプルのリストです。辞書には1つのエントリ「エンティティ」があり、その値は2つの整数(開始および終了インデックス)と文字列(ラベル)からなるタプル(トリプル)のリストです。私はパンダのデータフレームに精通しているわけではありませんが、一般的なユースケースのように思えるので、これを理解できると確信しています。長い文字列しか抽出できない場合でも、フォーマットが一貫している限り、Pythonで「split」、「strip」などのハッキングコンバータスクリプトを書くことができます。 –