0

1 行に 1 つの定義があり、形式は「WORDPartOfSpeech」です。

タスクは、ドキュメントを処理し、定義されたときに品詞を追加することです。再フォーマットは行わないでください。

たとえば、レキシコンが

BIG 形容詞 BALL 名詞

そして文書は

大きな赤いボールが落ちた。

次に、出力は次のようになります

/記事の大きな/形容詞の赤いボール/名詞が落ちた.

レキシコンをデータベース テーブルに 2 つのフィールドとして配置し、次の形式で 1 ​​つのカンマ区切りの行として出力される SQL 選択を実行した場合: "The/article,big/adjective,ball/noun" では、その行をどのように取得しますか?上記のように出力されるようにドキュメントに対して処理しますか?

4

1 に答える 1

0

レキシコンの用語に一致しない単語を保持するように SQL クエリを変更する必要があります (おそらく外部結合を使用します。そのクエリを提示していただければ、より具体的なアドバイスを提供できます)。次に、出力が次のようになると仮定します (/用語集に一致しなかった各用語が続くだけです)。

The/article big/adjective red/ ball/noun fell/.

次のようにクリーンアップできますsed(文字列が変数に保存されていると仮定します$variablename

sed 's_\/\([ .]\)_\1_g' <(echo "$variablename")

説明:

  • 読みやすくするためにコマンドを区切る_代わりに使用しました。構文は と同義です。/ss/search/replace/gs_search_replace_g

  • \/\([ .]\)/リテラル( としてエスケープ\/) の後にスペースまたはピリオドが続くものと一致するように sed に指示します[ .]\(このパターンに一致するものはすべて、パターンを\)囲んでいるため、参照に格納されます。

  • \1置換パターンでは、先ほど述べた後方参照です。これは、検索パターンで括弧で囲んだ一致部分を格納する変数のように機能します。実際には、スペースまたはピリオド自体を取り除かずに、スペースまたはピリオドが後に続くスラッシュをすべて取り除くように sed に指示しました。

出力:

The/article big/adjective red ball/noun fell.
于 2013-02-04T14:59:24.320 に答える