エンリッチメント関数は、Big Data Discoveryでデータ処理の一環として使用されるデータ・エンリッチメント・モジュールに基づいています。これらの関数を使用して、データから意味のある情報を抽出し、属性を変更して分析対象としての有用性を高めることができます。
これらと同じ関数が変換APIリファレンス(Groovydoc)で説明されています。
データ・エンリッチメント・モジュールの詳細は、『データ処理ガイド』を参照してください。
指定された文字列属性の言語を検索し、Oracleの言語コード(たとえば、スペイン語はes)を返します。正確な結果を得るには、テキスト内に少なくとも10語を含める必要があります。
detectLanguage(String attribute)各要素の意味は次のとおりです。
その結果は、単一割当の属性内に返されます。
detectLanguage(labor_description)labor_description文字列属性では「en」が返されます。
文字列属性からキー・フレーズを抽出し、複数割当の属性でフレーズのリストを返します。この関数は、TF/IDFアルゴリズムを使用して主要語句を計算します。このアルゴリズムでは、各語が文字列内に出現する合計回数を使用し、この値から、この語がより大きい処理本文内に出現する回数を相殺します。値を相殺することにより、"the"や"it"などの頻繁に使用される語をフィルタで除外しやすくなります。コントロールとして使用される処理本文は、Stringの言語に基づいて内部で選択されます。たとえば、英語に使用されるモデルはニューヨークタイムズのコーパスに基づいています。extractKeyPhrases関数は、TF/IDF語エクストラクタ・エンリッチメント・モジュールのラッパー関数です。
extractKeyPhrasesによって返される主要語句の数は、TF/IDF曲線の関数です。デフォルトでは、指定した語のスコアが68%を下回ると、語を返すことを停止します。
extractKeyPhrases(String attribute, String languageCode, Boolean smartCasing)各要素の意味は次のとおりです。
extractKeyPhrases(toLowerCase(comments)) extractKeyPhrases(surveys, 'en', true)
この関数を使用した結果で新しい属性を作成する場合、属性の型が複数割当であることを確認してください。
名詞グループが含まれるStringを返します。名詞グループは、"movie"や"building"などの任意の名詞です。これは、Noun Group Extractorエンリッチメント・モジュールのラッパー関数です。このモジュールは、サポート対象の各言語の文字列属性から、名詞グループを検索して返します。これは、データ内に一般的に存在するテーマを見つけるために、タグ・クラウドの可視化で使用されます。
extractNounGroups(String attribute, String languageCode)各要素の意味は次のとおりです。
extractNounGroups(labor_description, 'en')labor_description文字列属性では名詞(「Battery」、「Mass Air Flow Sensor」など)が返されます。
この関数を使用した結果で新しい属性を作成する場合、属性の型が複数割当であることを確認してください。
入力テキスト内の文字列の有限セット(ホワイトリスト)の要素を特定するディクショナリ一致アルゴリズムを使用します。この関数は、ホワイトリスト内の語の出現をすべて検索し、一致する完全表記のリストを返します。入力テキストは、ホワイトリストに対して照合されます。ホワイトリストは、改行区切りです。これは、ホワイトリスト・タガー・エンリッチメント・モジュールのラッパー関数です。
各行は、コメント(先頭文字の#によって示されます)である場合や、1つまたは2つの値(delimiter文字区切り)で構成された一致するディレクティブである場合があります。2番目の値は、一致出力をリライトするために使用されます。
これは、デリミタとしてスラッシュ(/)を使い、次のように書き換えることができます。
このホワイトリストを"The only noble gas is radon"というテキストに対して実行すると、['Rn']という出力リストが生成されます。
extractWhiteListTags(String attribute, String whitelist, String languageCode, boolean caseSensitive, boolean matchWholeWords, String delimiter)各要素の意味は次のとおりです。
delimiter=',' Rn,86 Ne,10 He,2 delimiter='/' Rn/86 Ne/10 He/2 no delimiter specified (uses the default <tab> character) Rn<tab>86 Ne<tab>10 He<tab>2
def whitelist = ''' helium/He neon/Ne argon/Ar krypton/Kr xenon/Xe radon/Rn ''' def document = 'The noble gases make a group of chemical elements with similar properties: under standard conditions, they are all odorless, colorless, monatomic gases with very low chemical reactivity. The six noble gases that occur naturally are helium (He), neon (Ne), argon (Ar), krypton (Kr), xenon (Xe), and the radioactive RADON (Rn).' extractWhitelistTags(document, whitelist, 'en', false, true, '/')
指定された言語は英語(en)であり、照合では大文字と小文字が区別されず(false)、バインドなしであるため、完全一致のみ(false)になります。'/'デリミタはホワイトリストの解析に使用されます。
管理レベルに応じて、IPアドレスをジオコード文字列アドレスに変換します。管理区分は国によって異なるため、返される値は予期したものとは異なる可能性があります。これは、IP Address GeoTaggerデータ・エンリッチメント・モジュールのラッパー関数です。
geotagIPAddress(String IPAddress, String adminLevel)各要素の意味は次のとおりです。
geotagIPAddress('148.86.25.54', 'City') geotagIPAddress('148.86.25.54', ADMIN_LEVEL_CITY)どちらの例も、単一割当の文字列属性として「New York City」を返します。
IPアドレスをGeocodeに変換し、そのgeocodeフィールドをObjectとして返します。これは、ジオコード型の単一属性を返すIP Address GeoTaggerデータ・エンリッチメント・モジュールのラッパー関数です。
geotagIPAddressGetGeocode(String IPAddress)各要素の意味は次のとおりです。
geotagIPAddressGetGeocode('148.86.25.54')単一割当のGeocode属性として、ジオコード「40.714270 -74.005970」を返します。
構造化フィールドに基づくジオタグのアドレス。
geotagStructuredAddress(String country, String region, String subregion, String city, String postcode, Boolean returnByPopulation, String adminLevel)各要素の意味は次のとおりです。
adminLevelパラメータは、唯一のオプションのパラメータであり、省略できる唯一のパラメータであることに注意してください。他のすべてのパラメータは、値またはnullのいずれかを指定する必要があります。
住所がロケーションの数値に解決され、returnByPopulationがtrueの場合、関数は、最大の人口を持つ場所を選択し、そのジオコードが返されます。
// Get the geocode for San Francisco in the US and return the location with the largest population. geotagStructuredAddress( 'us', null, null, 'san francisco', null, true, 'Geocode')「39.76 -98.5」(カリフォルニア州サンフランシスコのジオコード)が返されます。
// Get the region (state in the US) in which the Boston with the highest population is located. geotagStructuredAddress('us', '', '', 'boston', '', true, 'Region')「Massachusetts」が返されます(理由はボストンで、ボストンのあるマサチューセッツ州はアメリカ合衆国で最大の人口があります)。
文字列属性内の有効な住所は、管理レベルに応じてジオコード文字列の住所に変換されます。管理区分は国によって異なるため、返される値は予期したものとは異なる可能性があります。
これは、Address GeoTaggerデータ・エンリッチメント・モジュールのラッパー関数です。これは、ジオコード・アドレスが含まれるデータに複数割当属性(列)を追加します。
geotagUnstructuredAddress(String addressText, String adminLevel, String addressGrain, Boolean validateAddress)各要素の意味は次のとおりです。
geotagUnstructuredAddress(countries, 'Country', , true, 'en') geotagUnstructuredAddress('New York, NY 10029', 'Region', 'SubRegion', false)
IPアドレスをGeocodeに変換し、そのgeocodeフィールドをObjectとして返します。これは、Address GeoTaggerモジュールのラッパー関数です。
geotagUnstructuredAddressGetGeocode(String addressText, String addressGrain, Boolean validateAddress)各要素の意味は次のとおりです。
geotagUnstructuredAddressGetGeocode(cities, ADMIN_LEVEL_CITY, false) geotagUnstructuredAddressGetGeocode(cities, 'City', false)
入力文字列の属性から、特定のタイプのすべてのエンティティを返します。エンティティは、文字列のリストとして返されます。この関数は、このエンティティの結果のために、データ・セット内に新しい複数割当の列を作成します。これは、Named Entity Recognitionエクストラクタ・モジュールのラッパー関数です。英語の入力テキストのみをサポートしています。
getEntities(String attribute, String entityType)各要素の意味は次のとおりです。
getEntities(claims, ENTITY_TYPE_LOCATION) getEntities(reviews, 'Person')
これは、センチメント分析(ドキュメント・レベル)データ・エンリッチメント・モジュールのラッパー関数です。
getSentiment(String textAttribute, String languageCode)各要素の意味は次のとおりです。
getSentiment(comments, 'English')
この例では、「comments」は文字列属性です。
正または負のセンチメントを持つセンテンス内のフレーズを抽出します。関数呼出しは、抽出するフレーズのタイプおよびセンチメンのタイプを指定します。必要な語(文字列)のリストが返されます。
getTermSentiment(String textAttribute, String termAttribute, String sentimentCategory, String languageCode)各要素の意味は次のとおりです。
getTermSentiment(comments, 'KeyPhrases', 'Positive') getTermSentiment(comments, KEY_PHRASES, SENTIMENT_POSITIVE) getTermSentiment(companies, 'Organization', 'Negative') getTermSentiment(companies, ENTITY_TYPE_ORGANIZATION, SENTIMENT_NEGATIVE) getTermSentiment(reviews, 'NounGroups', 'Positive') getTermSentiment(reviews, NOUN_GROUPS, SENTIMENT_POSITIVE)
指定された管理区分のジオコード・アドレスを返します。入力したGeocodeから指定した半径内の管理区分を検索します。これは、単一値を返すReverse GeoTaggerデータ・エンリッチメント・モジュールのラッパー関数です。
reverseGeotag(Geocode geoAttribute, String adminLevel, Double proximityThreshold)各要素の意味は次のとおりです。
reverseGeotag(toGeocode(42.35843, -71.05977), 'CITY', 'en', 50)
pluginNameの外部ファイルに定義されているとおりにカスタムの外部Groovyスクリプトを実行し、スクリプトの結果を返します。
runExternalPlugin(String pluginName, String attribute, Map options)各要素の意味は次のとおりです。
外部プラグインの作成の詳細は、「変換関数ライブラリの拡張」を参照してください。
入力文字列からHTML、XMLおよびXHTMLマークアップを削除し、結果を文字列として返します。これは、タグ・ストリッパ・データ・エンリッチメント・モジュールのラッパー関数です。
stripTagsFromHTML(String attribute)各要素の意味は次のとおりです。
この関数は、プレーン・テキストを返します。
テキストの音声を表す入力テキスト(英語のみ)のStringハッシュを生成します。
語句の音声ハッシュは、スペルではなく発音に基づいています。音声ハッシュの適用例の1つに検索エンジンがあります。検索語によって結果が返されない場合、検索エンジンは、語の音声ハッシュを他の語のハッシュと比較し、最も適合する語の結果を返します。たとえば、"purple"と"pruple"は同じ音声ハッシュ(PRPL)を持つため、スペルが間違った語である"pruple"を検索した場合でも、"purple"と同じ結果が得られます。
toPhoneticHash(String attribute)各要素の意味は次のとおりです。
toPhoneticHash(terms)
この例では、"terms"は文字列属性です。