日期:2014-05-20  浏览次数:20867 次

请教程序
1 语料库 中 存放 是 在 语言 实际 使用 。 中 真实 出现过 语言 材料 。   
2 语料库 是 承载 语言 知识 。 基础 资源 不等于 语言 知识 。

问题描述如下:
*******************************************************************************************
  以上是我要处理的字符串,分两行,语句是分好词的,想统计每行中各句话的开起始位置。
最后的结果类似如下形式
  1:1-8~10-14 就是第一行:第一句话是第1个词到第8个词,第二句是第10个词到第14个词(因为句号占了1个词,所  
  以第二句是从第10个词开始)
  2:1-5~7-5  
*******************************************************************************************

------解决方案--------------------
for example
Java code

String[] sa = {
    "语料库 中 存放 是 在 语言 实际 使用 。 中 真实 出现过 语言 材料 。",
    "语料库 是 承载 语言 知识 。 基础 资源 不等于 语言 知识 。"
};

for (int i=0, j=0; i<sa.length; i++) {
    StringBuilder sb = new StringBuilder();
    sb.append(i+1).append(":").append(1);
    String[] ss = sa[i].split("\\s+");
    for (j=0; j<ss.length; j++) {
        if (ss[j].equals("。")) {
            sb.append("-").append(j);
            if (j != ss.length-1) {
                sb.append("~").append(j+2);
            }
        }        
    }
    System.out.println(sb);
}