Russian (Русский) - Change language

Примеры использования скриптов извлечения

Пример использования скриптов извлечения (C#):

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.SaveSpanToField( grantor.Span, "NlpField1" );
              }
          }
          
          // Доступ к исходному тексту
          string sourceText = FieldExtractor.SourceText;
          
          // Запись в поле любого текстового блока
          FieldExtractor.SaveTextToField( 0, sourceText.Length - 1, "NlpField2" );
              
          // XML-запрос, который производит поиск словарных словосочетаний длиной в 2 слова
          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>";
          
          // Выполнение запроса, получение коллекции результатов и сохранение их в поле
          FieldExtractor.RunQueryAndSaveToField( query, "query1", "NlpField3");
          
          // Выполнение запроса и получение коллекции результатов    
          IExtractedObjects queryResults1 = FieldExtractor.RunQuery( query, "query2" );
          
          // Другой способ получить доступ к результатам запроса, после его выполнения
          IExtractedObjects queryResults2 = FieldExtractor.QueryResults( "query2" );
        
Параметры скрипта
Имя Тип Права Значение
FieldExtractor IFieldExtractor Чтение Выделение полей в тексте документа

Пример скрипта для извлечения адреса

Скрипт вызван на все поле-источник.

// разделение адреса на составные компоненты
          this.ParseAddress();
          
          // извлечение найденных компонентов в отдельные поля
          var zip = this.ExtractedObjects( "NerZipCode" );
          var street = this.ExtractedObjects( "NerStreet" );
          for( var i = 0; i < zip.Count; i++ ) {
              this.SaveSpanToField( zip.Item(i).Span, "ZipCode" );
          }
          for( var j = 0; j < street.Count; j++ ) {
              this.SaveSpanToField( street.Item(j).Span, "Street" );
          }
        

Пример скрипта для извлечения адреса

Скрипт вызван на часть поля-источника.

// выделение всех NER-объектов в тексте поля или секции
         this.ExtractNerObjects();
         
          // извлечение объекта типа адрес
         var address = this.ExtractedObjects( "NerAddress" );
         
          // разделение адреса на компоненты 
         for( var addressSpanIndex = 0; addressSpanIndex < address.Count; addressSpanIndex++ ) {
             this.SaveSpanToField( address.Item(addressSpanIndex).Span, "Address" );
         
           // присвоение уникального префикса для имени всех коллекций компонент данного адреса
           var collectionName = "nerAddress" + String(addressSpanIndex);
         
           // извлечение адреса
           this.ParseAddressInPosition( collectionName, address.Item(addressSpanIndex).Span.StartPos, address.Item(addressSpanIndex).Span.EndPos );
           
           // сохранение найденных компонентов в отдельные поля
           var zip = this.ExtractedObjects( collectionName, "NerZipCode" );
           var street = this.ExtractedObjects( collectionName, "NerStreet" );
          RunQueryAndSaveToField
           for( var i = 0; i < zip.Count; i++ ) {
                 this.SaveSpanToField( zip.Item(i).Span, "ZipCode" );
          }
           for( var j = 0; j < street.Count; j++ ) {
                 this.SaveSpanToField( street.Item(j).Span, "Street" );
          }
         }
       

14.01.2021 14:17:24


Please leave your feedback about this article