2017-07-19 4 views
0

私は現在、会社名の自然言語処理を行っています。会社のサフィックスを削除し、元の、または肯定的な先読みを保持するRegEx

私が書いた正規表現は-\s+\w+('\w+|\s+\w)です。ハイフンの後のすべてのテキストを空白にしておきます。 次に、私は[.,/#!$%\^&*;:{}=-_`''"<>|~()]すべての句読点を削除します。第3に、I (Reg|Ltd|PLC|NV|LTD|LLC|INC|LLP|US)社のサフィックスを削除します。最後に、文字列の先頭と末尾に改行を含む名前がいくつかありますが、これは"\r*\n*で解決します。

私はAlteryx & Pythonでこれを実行しているので、これらの正規表現をまとめてみたいと思います。

注意:後に空白がないハイフンの会社名がありますので、これを保存して、句読点の削除で削除されていないことを確認する必要があります。

どのようにこれらのすべてを組み合わせることができますか?そして、私はこれについて正しく行きますか?最後に、文字列のクリーンアップ後、私は特定の情報を取り戻すためにこのデータを別のクライアントリストに結合します。

これは、すべてのフロントエンドに、特に企業向けのフリーテキストフィールドを含むべきではありません。

これらを1つのパターンに結合するにはどうすればよいですか、それぞれのパターンを分離する方がよいでしょうか? MY COMPANY X,Y,Z, TENNESSEE CORPORATION L.L.C. MY COMPANY HOLDINGS, LP. (there is a carriage return after the LP.) ABN FGDF - NEW YORK - UNITED STATES COLLEGE-INRIA ABCDE - UNITED STATES MANAGEMENT MANAGERS - UNITED STATES INVESTMENT MANAGEMENT CORPORATION - CANADA AUTO-CHLOR

ハイフンと次の文字の間に空白が存在しなかったとしてカレッジINRIAが滞在することを注記

MY COMPANY XYZ TENNESSEE CORPORATION MY COMPANY HOLDINGS ABN FGDF COLLEGE-INRIA ABCDE MANAGEMENT MANAGERS INVESTMENT MANAGEMENT CORPORATION AUTO-CHLOR

後。

+0

例を前後に追加して追加し、一部のテキストをクリーンアップしました。 – Carson

+0

前のチェックですでに '.'sを取り出したときにあなたの例でのみ動作する' LLC'をチェックしています。このような人はいますか? (例えば、 'L.L.P.'として書かれた' LLP'は他にもありますか?) – 3D1T0R

+0

ちょっと興味があります - 行に改行がある場合、空白行として解釈されず、空白行を削除することで排除できますか? (私は質問に対するAlteryxの答えを熟考しています。) – johnjps111

答えて

0

私はあなたが応答の緊急の必要性を過ぎていると思っていますが、後世のために答えたいと思っています。

まずは、各正規表現のステップを個別に保つかどうか、あるいは印象的に長く、理解しにくい表現にそれらを結合しようとするかどうかについて、実際にはスタイルに関する質問です。 (あなたの将来の自己や他の人は、それらを別々にしてくれたことに感謝するかもしれません)いくつかの文脈では正規表現演算の数を減らすことにいくつかのパフォーマンス上の考慮がありますが、全体的に戻ってきて数年を節約して、今から何年もやろうとしていたことの感覚。

第二に、正規表現は確かに使用されていますが、私が実際に使用する前にはalways ask myself if there is any way to avoid using Regexです。 Now you have two problems...

最後に、これを念頭に置いて、Regexを使用せずに類似のパフォーマンスを持つAlteryxの解析手順のほとんどを解決できます。

  1. 空間続くハイフンの除去はパターンを使用してカラムツールにテキストを用いて達成することができる「 - 」(スペース+ハイフン)とのみ残りのものから生じる最初の列と連携(または選択ツールを使用してごみ箱を完全に削除します)。
  2. データクレンジングツールですべての空白(\ r、\ nなどを含む)とすべての特殊文字を削除することができます。不要な文字の削除セクションで適切なチェックボックスをオンにします。元の文字列の不要な部分を削除した後、これを行うことで、これを高速にすることができます。しかし、これは空白にカプセル化されていないハイフンを削除します。
  3. REGEX_Replace(を使用して置換するすべての特殊文字と一致するパターンを持つ簡単な式ツール式をセットアップできます) 関数。また、FindとReplaceツール、または入れ子になったReplace()関数を使用することもできますが、この場合、ワークフローをメンテナンスする必要があると仮定した場合、REGEX_Replace()関数はおそらく最も簡潔でわかりやすいでしょう。 Regexを扱うことができます。

これらのことをPython SDKのコンテキストで実行しようとしている場合は、今後複数の手順を別々にすることをお勧めします。

ほとんどのものと同様に、AlteryxとAlteryx以外でこれらの問題にアプローチする方法もありますが、これは最初の質問に基づいてどのように進めるかです。

関連する問題