【问题标题】:How to read a paragraph in natural language processing GATE如何在自然语言处理 GATE 中阅读段落
【发布时间】:2012-06-03 03:49:15
【问题描述】:

我正在使用 GATE 工具进行自然语言处理.. 我正在使用 java 代码从句子中读取行并获取关键字.. 必须在 creole xml 中进行哪些修改才能读取完整的段落..

【问题讨论】:

  • 请发布您的java 代码,这样会更容易回答您的问题。

标签: java nlp gate


【解决方案1】:

你可以使用

doc.getNamedAnnotationSets().get("Original markups")

如果没有给出任何结果,可以使用类的方法annotateParagraphs() gate.corpora.TextualDocumentFormat.

【讨论】:

    【解决方案2】:

    我不确定你是什么意思,但如果你使用 ANNIE,你可以将每个段落放在一个单独的标签中。 我用的是standAloneAnnie.java

    http://gate.ac.uk/wiki/code-repository/src/sheffield/examples/StandAloneAnnie.java

    如果用户输入

    What is your name, ,some text sometext
    
    Sometext sometext sometext
    

    结果将是

    <paragraph>What is your name, ,some text sometext</paragraph>
    
    <paragraph>Sometext sometext sometext</paragraph>
    

    您可以获得更多标签,例如每个单词的人、位置、句子或标记。

    如果用户输入例如

    吉隆坡的用餐地点。赫尔顿酒店

    结果将是一个包含

    的 xml 文件
    <paragraph>
            <Sentence>
            <Token>Where</Token>
            <Token>To</Token>
            <Token>
            <Unknown>Dine</Unknown>
            </Token>
            <Token>In</Token>
            <Lookup>
            <Location>
            <Token>Kuala</Token>
            <Token>
            <Lookup>Lumpur</Lookup>
            </Token>
            </Location>
            </Lookup>
            <Token>
            <Split>.</Split>
            </Token>
            </Sentence>
    
            <Sentence>
            <Organization>
            <Token>Helton</Token>
            <Token>
            <Lookup>
            <Lookup>Hotel</Lookup>
            </Lookup>
            </Token>
            </Organization>
            </Sentence>
    
         </paragraph>
    

    我目前正在尝试获取同义词,但无法这样做:( 我希望结果包括其他选项,如上述句子,我希望结果有 用餐->晚餐,食物,吃,餐厅。

    【讨论】:

      【解决方案3】:

      这对我有用:

      1. 初始化门
      2. 创建门控制器(默认使用 ANNIE)
      3. 创建语料库,将语料库设置为控制器,创建门文档(gateDoc),添加到语料库
      4. controller.execute();
      5. 以下代码

                FeatureMap features = gateDoc.getFeatures();
                String originalContent = (String)
             features.get(GateConstants.ORIGINAL_DOCUMENT_CONTENT_FEATURE_NAME);
                int length = originalContent.length();
        
                TextualDocumentFormat tdf = new TextualDocumentFormat();
                    try {
                        tdf.annotateParagraphs(gateDoc,0, length,null);
        
        
                    } catch (DocumentFormatException e) {
                        e.printStackTrace();
                    }
        
                AnnotationSet paragraphs = gateDoc.getAnnotations().get("paragraph");
        
                Iterator it = paragraphs.iterator();
                Annotation currAnnot;
                SortedAnnotationList sortedParagraphs = new SortedAnnotationList();
        
                while (it.hasNext()) {
                    currAnnot = (Annotation) it.next();
                    sortedParagraphs.addSortedExclusive(currAnnot);
                } // while
        
                StringBuffer editableContent = new StringBuffer(originalContent);
        
        
                    System.out.println("Number of Paragraphs -  "+paragraphs.size());
        
                    for(Annotation paragraph:paragraphs){
                        long start = paragraph.getStartNode().getOffset().longValue();
                        long end = paragraph.getEndNode().getOffset().longValue();
        
                        String paraText=editableContent.substring((int) start, (int) end);
                        System.out.println(paraText);
                    }
        

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-23
        • 2019-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多