行番号を使用して重複した単語スペルエラーを見つけるためのコマンドライン方法

行番号を使用して重複した単語スペルエラーを見つけるためのコマンドライン方法

修正する:行番号の要件を明確にし、いくつかの長い内容を減らします。

コマンドラインで次の方法がありますか?

  • 英語のテキストファイルの確認
  • 繰り返し単語のスペルミスを見つけてください。
  • そして見つかった行番号、

問題を修正するのに役立ちますか?

実施例1

現在の記事やその他の英語の作文を助けて、aspell -c text.txtスペルミスを見つけるのに役立ちます。しかし、間違いが意図せずに単語を連続的に繰り返す場合は役に立ちません。

highlander_typo.txt:

There can be only one one.

ランニングaspell:

$ aspell -c highlander_typo.txt

おそらくaspellこれは文法チェッカーではなくスペルチェッカーであるため、スペルが間違っている単語を繰り返すことは意図された機能の範囲外です。したがって、aspell個々の単語のスペルに関する限り、「エラー」がないため、ファイルはスキャンに合格します。

正しい文はThere can be only one.、2番目oneは、意図しない繰り返し単語のスペルエラーです。

実施例2

ただし、別のケースは次のとおりですkylie_minogue.txt

La la la

ここで繰り返すのは作家の一部なので、タイプミスではありません。歌詞

したがって、解決策はそれ自体何も仮定し、「修正」してはいけません。それ以外の場合は、意図的に繰り返される単語を上書きできます。

例 3: 複数行

jefferson_typo.txt:

He has has refused his Assent to Laws, the most wholesome and necessary
for the public good.
He has forbidden his Governors to pass Laws of immediate and
and pressing importance, unless suspended in their operation till his
Assent should be be obtained; and when so suspended, he has utterly
neglected to attend to them.

以下で修正独立宣言書

上記の6行から

  • 1: でHe has has refusedなければなりませんHe has refused。 2つ目はhas繰り返しの単語スペルミスです。
  • 5: でshould be be obtainedなければなりませんshould be obtained。 2つ目はbe繰り返しの単語スペルミスです。

しかし、3番目に繰り返される単語のスペルが間違っていることを発見しましたか?

  • サム:... immediate and
  • 4:and pressing ...

これは別の行にあってもまだ同じ英語の文の一部ですが、前の行の最後に単語が誤って次の行の先頭に追加されることがあるため、繰り返し単語のスペルエラーです。繰り返しはテキストの両側で起こるので、肉眼では検出するのが難しい。

期待される出力

  • 同様のプロセスを持っているがaspell -c繰り返される単語を検出できるインタラクティブプログラム、または

  • 行番号と疑わしい繰り返し単語を抽出できるスクリプトまたはコマンドの組み合わせ。この情報を使用vimすると、繰り返し単語に移動して適切な場所に変更するなど、エディタの使いやすさが向上します。

上記の複数行を使用すると、目的のjefferson_typo.txt出力は次のようになります。

1: has has
3: and
4: and
5: be be

または:

1: He [has has] refused his Assent to Laws, the most wholesome and necessary
3: He has forbidden his Governors to pass Laws of immediate [and]
4: [and] pressing importance, unless suspended in their operation till his
5: Assent should [be be] obtained; and when so suspended, he has utterly

実際、上記の繰り返しのように、行間や行間で単語が繰り返されるのが難しい場合をどのように表示するのかわかりません。andしたがって、解決策がこれとまったく似ていなくても心配しないでください。

ただし、上記のように次のように表示されることを願っています。

  • 関連した生入力の行番号
  • 繰り返しの内容に注意を集中させる方法で、テキスト行が長すぎる場合に特に便利です。
  • コンテキストを提供するために行全体が表示される場合(出典:@Wildcard)、繰り返し単語を一意の方法でレンダリングする方法が必要です。ここに示す例では、重複項目をASCII文字で囲んで表示します[ ]。あるいは、grep --colors=alwaysカラー端末に表示するために線を模倣した一致を色付けすることもできる。

その他の考慮事項

  • テキストはプレーンテキストファイルとして残す必要があります。
  • GUIソリューションを提供せず、テキストソリューションのみを提供してください。ssh -XX11転送は信頼できないため、再編集する必要があります。ssh

失敗した試み

重複した単語を見つけようとする考えがあったuniqので、最初に重複した単語認識が一行で機能するようにする方法を調べることが計画でした。

使用する前に、uniq1行の単語を1行に1単語に変換する必要があります。

$ tr ' ' '\n' < highlander_typo.txt
There
can
be
only
one
one.

残念ながら:

$ tr ' ' '\n' < highlander_typo.txt | uniq -D

何もありません。

-Dこれは通常、重複項目を表示するオプションの場合、入力が正確に重複行である必要があるためです。残念ながら、.単語の末尾にピリオドを繰り返すと、oneこれは無効になります。他の行のように見えますが、ランダムな句読点(このピリオドなど)をどのように解決し、tr処理後に再度追加するのかわかりません。

これは失敗しました。ただし、成功した場合は、行の行番号を含める方法が必要です。入力ファイルに数百行がある可能性があるため、これは入力ファイルのどの行で重複する単語が検出されたかを示すのに役立ちます。

この1行処理は、おそらくファイル内のすべての行を処理できるように、1行ごとに複数行処理を実行する親ループの一部です。しかし、残念ながら1行を超えても重複する単語認識が問題になりました。

ベストアンサー1

編集する:インストールとデモの追加

次の極端なケースを少なくとも処理する必要があります。

  • 行の終わり(および開始)で単語を繰り返します。
  • が頻繁に表示されるため、検索時に大文字と小文字を区別する必要がありますThe the apple
  • おそらく、検索を単語のコンポーネントに制限することで( ( a + b) + c )(繰り返し開くかっこと一致しない可能性があります)。
  • 完全な単語だけを一致させることで削除できます。the thesis
  • 人間の言語では、単語のUnicode文字を正しく解釈する必要があります。

おおむねpcregrep次の解決策をお勧めします。

pcregrep -Min --color=auto '\b([^[:space:]]+)[[:space:]]+\1\b' file

明らかに、色と行番号(nオプション)はオプションですが、通常は問題ありません。

インストールする

Debianベースのディストリビューションでは、以下からインストールできます。

$ sudo apt-get install pcregrep

はい

次のコマンドを実行しjefferson_typo.txtて確認してください。

$ pcregrep -Min --color=auto '\b([^[:space:]]+)[[:space:]]+\1\b' jefferson_typo.txt
1:He has has refused his Assent to Laws, the most wholesome and necessary
3:He has forbidden his Governors to pass Laws of immediate and
and pressing importance, unless suspended in their operation till his
5:Assent should be be obtained; and when so suspended, he has utterly

上記はテキストキャプチャだけですが、色をサポートする端末では一致するものに色が割り当てられます。

  • はいはい
  • そして
  • そして
  • はいはい

おすすめ記事