zoukankan      html  css  js  c++  java
  • Atitit word结构化提取考试试题读取 poi读取word nlp aiprj 目录 1.1. 结构化后数据 1 1.2. 文字读取 1 1.3. 图片读取 1 1.4. Doc的表格读取 /

    Atitit word结构化提取考试试题读取 poi读取word nlp aiprj

     

    目录

    1.1. 结构化后数据 1

    1.2. 文字读取 1

    1.3. 图片读取 1

    1.4. Doc的表格读取 //遍历range范围内的table。 2

    1.5. code 2

     

      1. 结构化后数据

     

    {

    "linenum":85,

    "topicNum":8,

    "linenumEnd":95,

    "topicType":"8.singlechoice[单选题](3分)68494d9cc2bb4396af50b30fc9e79d63\u00A0",

    "topic":"Servlet生命周期的初始化在什么时候会调用init()方法(  A  )",

    "ans":"A"

    }

     

      1. 文字读取

    文字操作中,可以通过HWPFDocument 直接读取,也可以获取到Range对象后读取

     

      1. 图片读取

    Doc获取文档中的所有图片,并存储,其中Picture 对象中,getContent()可获取字节流,然后获取字节数据,自己写出来,也可以通过writeImageContent 来直接写,图片的开始位置可以获取,但是结束位置没有

     

      1. Doc的表格读取 //遍历range范围内的table。  

    TableIterator tableIter = new TableIterator(range);

    while (tableIter.hasNext()) {

        Table table = tableIter.next();

        //开始位置

        int start = table.getStartOffset();

        //结束位置

        int end = table.getEndOffset();

        System.out.printf("开始位置%d,结束为止%d\r\n",start,end);

     

        //获取行的数目

        int rowNum = table.numRows();

        for (int j = 0; j < rowNum; j++) {

            //获取每一行

            TableRow row = table.getRow(j);

            int cellNum = row.numCells();

            for (int k = 0; k < cellNum; k++) {

                //获取每一列

                TableCell cell = row.getCell(k);

                // 输出单元格的文本

                System.out.println(cell.text().trim());

            }

        }

    }

    ---------------------

      1.  code

    package apkg;

     

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileNotFoundException;

    import java.io.IOException;

    import java.io.InputStream;

    import java.rmi.NoSuchObjectException;

    import java.text.Collator;

    import java.util.Arrays;

    import java.util.Collections;

    import java.util.Comparator;

    import java.util.List;

    import java.util.Locale;

    import java.util.Map;

    import java.util.Set;

    import java.util.regex.Matcher;

    import java.util.regex.Pattern;

     

    import org.apache.commons.io.FileUtils;

    import org.apache.poi.POIXMLProperties.CoreProperties;

    import org.apache.poi.hwpf.HWPFDocument;

    import org.apache.poi.hwpf.usermodel.Range;

    import org.apache.poi.xwpf.extractor.XWPFWordExtractor;

    import org.apache.poi.xwpf.usermodel.XWPFDocument;

     

    import com.alibaba.fastjson.JSON;

    import com.google.common.collect.Lists;

    import com.google.common.collect.Maps;

    import com.google.common.collect.Sets;

     

    public class kaosiWordExt {

     

    public static void main(String[] args) throws IOException {

    // readTwoMannamesFileJoin();

     

    // String f="C:\\Users\\Administrator\\Desktop\\namelib\\好听的女孩名字2225个.docx";

    // List<String> femnames=getList2220femNnames(f,1);

    // System.out.println(femnames);

    // FileUtils.writeLines(new File("D:\\namelib\\fem2200names.txt"), femnames);

    String f="D:\\0db\\人工智能1807javaA-云计算《电子商务》第3周周考理论题.doc";

    // List<Map> femnames=getList(f);

    HWPFDocument doc = new HWPFDocument(new FileInputStream(f));

     

    //通过 Doc对象直接获取Text

    StringBuilder sb = doc.getText();

     String string = sb.toString();

    System.out.println(string);

    FileUtils.write(new File("d:\\doc2txt.txt"), string);

     

    //通过Range对象获取Text

    Range range = doc.getRange();

    String text = range.text();

    System.out.println(text);

     

     

    List<Map> topics=Lists.newLinkedList();

    String[] lines=string.split("\r");

     

    for(int lineIdx=1;lineIdx<=lines.length;lineIdx++)

    {

    if(lineIdx==7)

    System.out.println("d");

    int linesListIdex=lineIdx-1;

         String line=lines[linesListIdex].trim();

         if(line.length()==0)

          continue;

         System.out.println(" lineIdx :"+lineIdx);

         if(lineIdx==404)

    System.out.println("d");

         if(KaosiUtil.isTopicStart(line.trim()))

         {

          Map topic=Maps.newLinkedHashMap();

          topic.put("linenum", lineIdx);

          topic.put("topicNum",KaosiUtil.gettopicNum(line.trim()));       

          topic.put("linenumEnd", KaosiUtil.getNextTopicLineNum(lines,lineIdx+1));

          topic.put("topicType",line.trim());

          topic.put("topic",KaosiUtil.gettopic(lines,lineIdx+1));

          topic.put("ans",KaosiUtil.getAnsBytopictitle( topic.get("topic").toString() ));

          topics.add(topic);

          System.out.println(JSON.toJSONString(topic, true));

         }

    }

     

     

     

     

    }

     

     

     

    (9+条消息)POI之Word文档读取-yellowcong - yelllowcong的专栏 - CSDN博客.html

  • 相关阅读:
    The Quad
    将OrCAD Capture CIS的设计文件(.dsn)导入到PADS Logic VX.2.3
    OrCAD Capture CIS 16.6 将版本16.6的设计文件另存为版本16.2的设计文件
    Eclipse IDE 添加jar包到Java工程中
    PADS Logic VX.2.3 修改软件界面语言
    切换Allegro PCB Editor
    Allegro PCB Design GXL (legacy) 将brd文件另存为低版本文件
    Allegro PCB Design GXL (legacy) 设置自动保存brd文件
    Could not create an acl object: Role '16'
    windows 下apache开启FastCGI
  • 原文地址:https://www.cnblogs.com/attilax/p/15197275.html
Copyright © 2011-2022 走看看