2017-02-24 1 views
2

Ich möchte den Schlüsselwortwert einer PDF aus einem PDF-Link extrahieren. Ich crawle eine Seite, die einen Link zu einigen PDFs enthält. Ich möchte ein virtuelles Dokument erstellen, in das ich diese PDFs einreihen muss. Ich möchte den Inhalt dieser PDFs nicht crawlen, aber ich möchte nur das Schlüsselwort aus diesen PDFs extrahieren. Wenn ich diese PDF-Links mit inspect source öffne, hat es ein Keyword-Feld. Es hat jedoch keinen Wert für das Keyword. Es sieht so aus:Wie extrahiert man die Keyword-Eigenschaften einer PDF-URL mit IBM Watson Explorer?

<div class="row"> 
<span data-l10n-id="document_properties_keywords">Keywords:</span> <p id="keywordsField">-</p> 
</div> 

Gibt es eine Möglichkeit, ein Schlüsselwort aus den PDFs zu extrahieren? Ich sehe, dass diese PDFs Keywords haben. Wenn ich diese PDFs herunterlade, haben die Eigenschaften von Open PDF und das Keyword einen gewissen Wert. Referenz: https://www.ibm.com/support/knowledgecenter/SS8NLW_10.0.0/com.ibm.swg.im.infosphere.dataexpl.engine.tut.virt.doc/t_cc-build-virt-docs.html

Antwort

0

Ich kenne keine out of the box Weg, aber Sie können versuchen, ein Crawler-Plugin oder Ihren eigenen Crawler zu implementieren. Es gibt Haken Extrakt Metadaten und fügen Sie sie in den Index, zum Beispiel in einem Crawler hinzuzufügen Plugin Sie so etwas wie dieses

@Override 
    public CrawledData updateDocument(CrawledData crawledData) throws CrawlerPluginException { 

     List<FieldMetadata> metadataList = crawledData.getMetadataList(); 
     String MyPDFProperty= getFromOriginalContent(crawledData.getOriginalContents()); 

// getFromOriginalContent Methode, die Sie für Ihre PDF-Dokument implementieren müssen tun können

  if (metadataList == null) { 
      metadataList = new ArrayList<FieldMetadata>(); 
      }      

FieldMetadata pdfFieldMetaData = new FieldMetadata("pdfextractedpropertyr", MyPDFProperty); 
       metadataList.add(pdfFieldMetaData); 
       crawledData.setMetadataList(metadataList); 

      } catch (ClientServicesException e) { 

       logger.error(e.getMessage()); 
       throw new CrawlerPluginException(e); 
      } 
      } 
      return crawledData; 
    } 
Verwandte Themen