资源简介
java语言实现的关于中文词性标注的问题,在Eclipse上通过编译,可运行。欢迎下载,并提出意见。
代码片段和文件信息
import java.util.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.math.*;
public class Viterbi
{
public static void main(String[] args)
{
//----------------------------------------------------------------------------------
//统计出训练样本中词性种类及其频率
String content=““;
BufferedReader reader=null;
try{ //读取199801train.txt文本中的内容,并保存在content的字符流中
reader=new BufferedReader(new FileReader(“c:/199801train.txt“));
String line;
while((line=reader.readLine())!=null) content+=line;
}
catch(IOException e)
{
e.printStackTrace();
}
finally
{
if(reader!=null)
{
try{reader.close();}
catch(IOException e){}
}
}
String[] text; //text[]用于存储训练样本中的词语
text=content.split(“(/[a-z]*\\s{0})|(][a-z]*\\s{1})“); //去除词性标注
//for(String wd:text)
//System.out.println(wd);
String[] temp; //temp[]数组用于存储单个词的词性标注符号
temp=content.split(“[0-9|-]*/|\\s{1}[^a-z]*|][a-z]“); //仅保留词性标注符号。
String[] temp1;
temp1=new String[temp.length-1];//去除temp[0]为空的情况
for(int i=0;i temp1[i]=temp[i+1];
//for(String wd:temp1)
//System.out.print(wd+“ “);
String[] temp2; //temp2[]数组用于存储每两个词的词性标注符号
temp2=new String[temp1.length-1];
for(int i=0;i temp2[i]=temp1[i]+‘‘+temp1[i+1];
//for(String wd:temp2)
//System.out.println(wd);
String[] word_pos;
word_pos=new String[text.length];
for(int i=0;i word_pos[i]=text[i]+‘‘+temp1[i];
//for(String wd:word_pos)
//System.out.println(wd);
Hashtable hash1=new Hashtable(); //创建hash1,存储单个词的词性及其频率
for(String wd:temp1)
{
if(hash1.containsKey(wd))
hash1.put(wdhash1.get(wd).hashCode()+1);
else
hash1.put(wd1);
}
int sp=hash1.size(); //统计词性个数
//System.out.println(hash1);
Hashtable hash2=new Hashtable(); //创建hash2,存储每两个词的词性及其频率
for(String wd:temp2)
{
if(hash2.containsKey(wd))
hash2.put(wdhash2.get(wd).hashCode()+1);
else
hash2.put(wd1);
}
//System.out.println(hash2);
Hashtable hash3=new Hashtable(); //创建hash3存储词语、词性和词频
for(String wd:word_pos)
{
if(hash3.containsKey(wd))
hash3.put(wdhash3.get(wd).hashCode()+1);
else
hash3.put(wd1);
}
//System.out.println(hash3);
String[] table_pos; //table_pos[]用于存储所有不同的词性符号
table_pos=new String[sp];
Enumeration key=hash1.keys();
for(int i=0;i {
String str=(String)key.nextElement();
table_pos[i]=str;
}
//for(String wd:table_pos)
//System.out.println(wd);
//-------------------------------------------------
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 22374 2009-10-27 16:57 Wordpos\199801test.txt
文件 2437276 2009-10-27 16:57 Wordpos\199801train.txt
文件 22320 2009-12-18 16:59 Wordpos\result.txt
文件 8894 2009-12-18 16:55 Wordpos\Viterbi.java
文件 16953 2010-01-06 13:46 Wordpos\程序说明.docx
目录 0 2010-01-06 13:46 Wordpos
----------- --------- ---------- ----- ----
2507817 6
- 上一篇:剑指offer(java版).pdf
- 下一篇:Java AES文件和文本加解密
相关资源
- Java AES文件和文本加解密
- 剑指offer(java版).pdf
- Scalable IO in Java -Doug Lea
- java权限系统概要设计说明书
- 用java实现的简易型科学计算器
- javax.annotation
- 英汉小字典Java课程设计
- 将一段文字转化为哈夫曼编码JAVA实现
- 档案管理系统 源代码+数据库
- java的fastjson.jar包
- Java 利用poi 导出excel 工具类,超实用
- 广工JAVA作业报告
- 局部加权朴素贝叶斯
- 本科毕业论文java外文翻译
- 操作系统内存分配回收算法(first f
- POI实现Excel导入导出并附带加载进度条
- 运动会成绩管理系统,java课程设计源
- java项目经验 大概有20个
- Java(OOP)练习及作业
- ExcelUtils.java
- java+swing+mysql实现的学生信息管理系统
- 学生选课管理系统.rar
- mchange-commons-java-0.2.12.jar
- java培训视频资源获取.zip
- JAVA+SQL实训报告--工资管理系统
- BeanUtils工具
- 期末大作业扫雷游戏单机版源码java实
- 五子棋java jsp代码实现
- java-upload分片文件接收,分片文件合并
- httpclientjar包
评论
共有 条评论