照会辞書でエラー提案を生成する

照会辞書でエラー提案を生成する

編集:テキストフィールドのスペースをよりよく処理するために、ファイルがtsvに変更されました。

次の形式のcsvファイルが2つあります。

ファイル1:availableText.csv(サイズが大きくなる可能性があります)

「id1」、「text1-1」
、「id1」、「text1-2」、
「id1」、「text1-3」、
「id1」、「text1-4」
、「id2」、「text2-1」、
「id2」、「text2-2」
「id2」、「text2-3」
「id2」、「text2-4」
...

ファイル2:エラーtext.csv

「id1」、「texta」、
「id2」、「textb」、
「id3」、「textc」、
「id4」、「textd」
...

の各行に対してwrongText.csv同じIDに対して利用可能なテキスト項目をフィルタリングし、利用可能な最も適切なオプションを提案するtre-agrep関数使いたいです。

たとえば、次のようになりますid1

tre-agrep -B 'texta'(text1-1:4から)| tr "\n" "$"
('text1-2$text1-4' などの結果を生成)

必要な出力ファイルは次のとおりです。

"id1", "texta", "text1-2$text1-4",
"id2", "textb", "text2-1$text2-3$text2-4"

メモ:

  1. CSVは任意の形式に変換できますが、テキストにスペースを含めることができます(特殊文字を除く)。
  2. IDに特殊文字とutf-8が含まれています。
  3. 速度は重要ではありません(少なくとも今は)

ベストアンサー1

結果は次のとおりです。

for pattern in $(awk '{print $3}' wrong.csv) ; do tre-agrep -B $pattern available.csv | tr "\n" "$"; echo ; done  
"id1" , "text1-1"$"id1" , "text1-2"$"id1" , "text1-3"$"id1" , "text1-4"$"id2" , "text2-1"$"id2" , "text2-2"$"id2" , "text2-3"$"id2" , "text2-4"$
"id1" , "text1-1"$"id1" , "text1-2"$"id1" , "text1-3"$"id1" , "text1-4"$"id2" , "text2-1"$"id2" , "text2-2"$"id2" , "text2-3"$"id2" , "text2-4"$
"id1" , "text1-1"$"id1" , "text1-2"$"id1" , "text1-3"$"id1" , "text1-4"$"id2" , "text2-1"$"id2" , "text2-2"$"id2" , "text2-3"$"id2" , "text2-4"$
"id1" , "text1-1"$"id1" , "text1-2"$"id1" , "text1-3"$"id1" , "text1-4"$"id2" , "text2-1"$"id2" , "text2-2"$"id2" , "text2-3"$"id2" , "text2-4"$

読みやすさの向上:

for pattern in $(awk '{print $3}' wrong.csv) 
do
  tre-agrep -B $pattern available.csv | tr "\n" "$"
  echo
done  

そんなこと?

おすすめ記事