2016-04-26 5 views
-1

値が異なる場合でも同じことを意味する約100,000文字のテキスト文字列(文)のリストがあります。問題の多くは、原因ペアの半分に短縮形と異なる句読点を使用するだけで、次のとおりです。ルックアップテーブル内の略語を検索するOracleの文字列を分割する

Source 1    Source 2 
TEMP.IND.    TEMPERATURE INDICATOR 

この問題を解決する方法についての私の最初の考えは言葉で文字列を分割することで、その後、各単語を見てしまいます一致するものが、私は他のソースとそれを比較する前に新しい単語を使って置換文字列を生成発見された場合

Abbreviation:   Meaning: 
TEMP.     TEMPERATURE 
IND.     INDICATOR 

:略語と以下に似たフルレングスの単語を含むテーブル内のアップ。一致しない場合は、ルックアップテーブルにある省略語ごとに処理を繰り返します。

これは、Oracleと比較して非常に複雑になるでしょうか? C#(私は流暢です)? DBに保存するのが望ましいでしょうが、実装に時間がかかりすぎるとは限りません。より良い選択肢はありますか?別の方法は、すべてを手動でチェックすることです。

これが間違ったサイトである場合はお詫び申し上げます。

答えて

1

DB(Oracle)でもC#と同じようにやるほうがずっと簡単です。等価表(Abbreviation and Meaning列)を作成すると、コードの作成はあまり問題になりません。

難易度は仕様です。どうして天気?インドは「一時的な指標」または「インドの寺院」ではなく「温度指標」を意味しますか?これは、各略語が固有の意味に対応する場合にのみ(OracleまたはC#などでは無関係です)機能します。

運が良かった!

+0

私が比較しているテキストは、非常に特定のビジネスドメインから来ているので、混乱の可能性はありません。答えをありがとう! – bjelleklang

+0

でも、コードについて考える前に、強力なルールセットが必要です。たとえば、Temp。温度と温度に拡張する。温度(一致する場合)に?あなたはTemp時に "感知"する必要がありますか?文中の最後の単語なので、ピリオド(完全停止、文の終わり)はピリオドなしで文を残して削除されませんか?あなたは一時的なものを望んでいますか?とtemp;両方とも温度に膨張する。 (すべてセミコロンが続く);すでにコードを開発した後にこれらがあることは非常にイライラする可能性があります。 – mathguy

関連する問題