メインコンテンツへスキップ
これらの例では、FieldExtractorオブジェクトを使った抽出スクリプトで、固有表現を検出し、XMLクエリを実行し、住所コンポーネントを個別のfieldに分けて解析する方法を示します。

C# 抽出スクリプトの例

次の C# の例では、FieldExtractor オブジェクトに対して複数の抽出メソッドを実行します。キーワードと人名を照合し、テキスト範囲を field に書き込み、辞書内の 2 単語フレーズに対して XML クエリを実行します。
FieldExtractor.ExtractRegularExpression( "(grant(s))|(convey to)|(grant)", "keyWords" );
FieldExtractor.ExtractWordsFromUserDictionary("dictionary", "English");
FieldExtractor.ExtractNerObjects();

// コレクション名で識別済みオブジェクトにアクセスする
IExtractedObjects personObjects = FieldExtractor.ExtractedObjects( "NerPerson" );
IExtractedObjects keyWordsObjects = FieldExtractor.ExtractedObjects( "keyWords" );

// キーワードの左側にマッチングする人を検索する
for( int i = 0; i < keyWordsObjects.Count; i++ ) {
    IExtractedObject keyWord = personObjects.Item( i );
    IInterval span = keyWord.Span;
    IExtractedObject grantor = personObjects.Find( span.StartPos, false );
    string grantorName = grantor.Value;
    if ( grantorName.Length > 2 && grantorName != "Doug Darrell" ) {
        FieldExtractor.PutSpanToField( grantor.Span, "NlpField1" );
    }
}

// ソーステキストにアクセスする
string sourceText = FieldExtractor.SourceText;

// 任意のテキストスパンをfieldに書き込む
FieldExtractor.PutTextToField( 0, sourceText.Length - 1, "NlpField2" );

// 2単語のdictionaryフレーズを検索するXMLクエリ
string query = "<Request> " +
    "<Query>" +
    "<Contain MaxDistance=\"1\">" +
    "<Required>" +
    "<Form><Attributes><Attribute>dictionary1</Attribute></Attributes></Form>" +
    "</Required>" +
    "<Required>" +
    "<Form><Attributes><Attribute>dictionary2</Attribute></Attributes></Form>" +
    "</Required>" +
    "</Contain>" +
    "</Query>" +
    "</Request>";

// クエリを実行し、結果のコレクションを取得してfieldに保存する
FieldExtractor.RunQueryAndSaveToField( query, "query1", "NlpField3");

// クエリを実行し、結果のコレクションを取得する
IExtractedObjects queryResults1 = FieldExtractor.RunQuery( query, "query2" );

// クエリ実行後にクエリ結果へアクセスする別の方法
IExtractedObjects queryResults2 = FieldExtractor.QueryResults( "query2" );

スクリプト パラメーター

Name権限Value
FieldExtractorIFieldExtractor読み取り文書内のテキストに含まれるfieldを識別します

field 全体用の住所抽出スクリプトのサンプル

このスクリプトは、ソース field 全体に対して実行されます。住所を解析し、郵便番号と住所を別々の field として抽出します。
// 住所を解析する
this.ParseAddress();

// コンポーネントを個別のfieldに抽出する
var zip = this.ExtractedObjects( "NerZipCode" );
var street = this.ExtractedObjects( "NerStreet" );

for( var i = 0; i < zip.Count; i++ ) {
    this.PutSpanToField( zip.Item(i).Span, "ZipCode" );
}

for( var j = 0; j < street.Count; j++ ) {
    this.PutSpanToField( street.Item(j).Span, "Street" );
}

field の一部向け住所抽出スクリプトのサンプル

このスクリプトは、ソース field の一部に対して呼び出されます。NER の住所オブジェクトを検出し、それを各構成要素に分割して、郵便番号と住所を別々の field に保存します。
// fieldまたはセクションのテキスト内のすべてのNERオブジェクトを検出する
this.ExtractNerObjects();

// Addressオブジェクトを抽出する
var address = this.ExtractedObjects( "NerAddress" );

// 住所をコンポーネントに分割する
for( var addressSpanIndex = 0; addressSpanIndex < address.Count; addressSpanIndex++ ) {
    this.PutSpanToField( address.Item(addressSpanIndex).Span, "Address" );

    // 指定された住所のすべてのコンポーネントコレクション名に一意のプレフィックスを割り当てる
    var collectionName = "nerAddress" + String(addressSpanIndex);

    // 住所を抽出する
    this.ParseAddressInPosition( collectionName, address.Item(addressSpanIndex).Span.StartPos, address.Item(addressSpanIndex).Span.EndPos );

    // コンポーネントを個別のfieldに保存する
    var zip = this.ExtractedObjects( collectionName, "NerZipCode" );
    var street = this.ExtractedObjects( collectionName, "NerStreet" );
    RunQueryAndSaveToField
    for( var i = 0; i < zip.Count; i++ ) {
        this.PutSpanToField( zip.Item(i).Span, "ZipCode" );
    }
    for( var j = 0; j < street.Count; j++ ) {
        this.PutSpanToField( street.Item(j).Span, "Street" );
    }
}