`
ansjsun
  • 浏览: 203094 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一些分词中用到的公式-参考ictclas

 
阅读更多
//计算平滑系数公式

//平滑参数
dSmoothingPara = 0.1
//设置当前节点的频度,如果是已知词性,直接使用频度
dCurFreqency
//一个参数
static int MAX_FREQUENCE = 2079997;
//Two linked Words frequency
dTemp = (double) 1 / MAX_FREQUENCE;
//两词之间的词频?关联度?
nTwoWordsFreq = DictBinary.GetFrequency(sTwoWords, 3);


//这个词的平度
			if (pCur.p.nPOS >= 0) {
				// It's not an unknown words
				dCurFreqency = pCur.p.value;
			} else {
				// Unknown words
				//如果是未知词性,从核心词典中检索词组汉字对应2的频度
				dCurFreqency = DictCore.GetFrequency(pCur.p.sWord, 2);
			}
			
			
			/**
		 * 得到具体词和词性的频度数据
		 * 
		 * @param sWord
		 *            单词
		 * @param nHandle
		 *            词性
		 * @return 频度
		 */
		public int GetFrequency(char[] sWord, int nHandle) {
			char sWordFind[] = new char[WORD_MAXLENGTH - 2];
			int nPos, nIndex;
			PWORD_CHAIN pFound;
			Pint pnPos = new Pint();
			if (!PreProcessing(sWord, pnPos, sWordFind))
				return 0;
			nPos = pnPos.value;
	
			Pint pnIndex = new Pint();
			if (FindInOriginalTable(nPos, sWordFind, nHandle, pnIndex)) {
				nIndex = pnIndex.value;
				return m_IndexTable[nPos].pWordItemHead[nIndex].p.nFrequency;
			}
			nIndex = pnIndex.value;
	
			PPWORD_CHAIN ppFound = new PPWORD_CHAIN(new PWORD_CHAIN(
					new WORD_CHAIN()));
			if (FindInModifyTable(nPos, sWordFind, nHandle, ppFound)) {
				return ppFound.p.p.data.nFrequency;
			}
			return 0;
		}

dValue = -Math
						.log(dSmoothingPara * (1 + dCurFreqency) / (MAX_FREQUENCE + 80000)+ (1 - dSmoothingPara)* ((1 - dTemp) * nTwoWordsFreq/ (1 + dCurFreqency) + dTemp));
分享到:
评论
6 楼 ansjsun 2012-11-06  
小网客 写道
ansjsun 写道
小网客 写道
采用Ansj切词

你好我代码如下

String format = "%s\tuserDefine\t1000";
		List<String> dic = new ArrayList<String>();
		
		dic.add("我是特种兵") ;
		for (int i = 0; i < dic.size(); i++) {
			Library.insertWord(UserDefineLibrary.FOREST, String.format(format, new Object[] { dic.get(i) }));
		}
		
		System.out.println(ToAnalysis.paser("我是特种兵是一部很好看的电影!"));


没有报错啊..你是不是你的用户自定义词典中包含\t的符号..这样的话词典不支持加载的

灰常感谢,版本不一样,我升级下试试

好的..你升级完了告诉我下...谢谢关注
5 楼 小网客 2012-11-06  
ansjsun 写道
小网客 写道
采用Ansj切词

你好我代码如下

String format = "%s\tuserDefine\t1000";
		List<String> dic = new ArrayList<String>();
		
		dic.add("我是特种兵") ;
		for (int i = 0; i < dic.size(); i++) {
			Library.insertWord(UserDefineLibrary.FOREST, String.format(format, new Object[] { dic.get(i) }));
		}
		
		System.out.println(ToAnalysis.paser("我是特种兵是一部很好看的电影!"));


没有报错啊..你是不是你的用户自定义词典中包含\t的符号..这样的话词典不支持加载的

灰常感谢,版本不一样,我升级下试试
4 楼 ansjsun 2012-11-05  
小网客 写道
采用Ansj切词

你好我代码如下

String format = "%s\tuserDefine\t1000";
		List<String> dic = new ArrayList<String>();
		
		dic.add("我是特种兵") ;
		for (int i = 0; i < dic.size(); i++) {
			Library.insertWord(UserDefineLibrary.FOREST, String.format(format, new Object[] { dic.get(i) }));
		}
		
		System.out.println(ToAnalysis.paser("我是特种兵是一部很好看的电影!"));


没有报错啊..你是不是你的用户自定义词典中包含\t的符号..这样的话词典不支持加载的
3 楼 ansjsun 2012-11-05  
public static void main(String[] args) throws IOException {
		
		UserDefineLibrary.insertWord("我是特种兵","userDefine",100) ;
		
		System.out.println(ToAnalysis.paser("我是特种兵是一部很好看的电影!")); ;
		
	}


用这个方法导入用户词典..那个报错肯定是..格式化字符串不对的.
2 楼 小网客 2012-11-05  
采用Ansj切词
1 楼 小网客 2012-11-05  
使用
采用用户自定义词典的时候不定期抛异常
java.lang.NumberFormatException: For input string: "userDefine"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:449)
at java.lang.Integer.parseInt(Integer.java:499)
at love.cq.util.ObjectBean.getInt(ObjectBean.java:6)
at org.ansj.util.recognition.UserDefineRecognition.recongnitionTerm(UserDefineRecognition.java:69)
at org.ansj.splitWord.analysis.ToAnalysis$1.merger(ToAnalysis.java:49)
at org.ansj.splitWord.analysis.ToAnalysis.getResult(ToAnalysis.java:68)
at org.ansj.splitWord.Analysis.analysis(Analysis.java:169)
at org.ansj.splitWord.Analysis.next(Analysis.java:92)
at com.panguso.recommend.ar.service.ArSegmentImpl.segByAnsj(ArSegmentImpl.java:271)
at com.panguso.recommend.ar.service.ArSegmentImpl.segment(ArSegmentImpl.java:93)
at com.panguso.recommend.ar.mapper.ArSegmentMapper.map(ArSegmentMapper.java:75)
at com.panguso.recommend.ar.mapper.ArSegmentMapper.map(ArSegmentMapper.java:45)
用户自定义词典导入如下:
private void loadAnsjDic() {
String format = "%s\tuserDefine\t1000";
List<String> dic = Utils.getDicList();
for (int i = 0; i < dic.size(); i++) {
Library.insertWord(UserDefineLibrary.FOREST,
        String.format(format, new Object[] {dic.get(i)}));
}
}

相关推荐

    中科院ICTCLAS2014分词系统下载包

    中科院ICTCLAS2014分词系统下载包

    中科院分词2011最新版免费版源码ICTCLAS

    在张华平博士的空间上直接下载的,用VS2010打开发现有几处BUG,主要是VC6.0转VC10.0的兼容问题,我上传的源码中,BUG已经恢复,代码现在能完美运行(包括分词词库)。

    NLPIR/ICTCLAS2014

    NLPIR/ICTCLAS2014是一个由著名学者张华平教授研发的中文分词系统,被誉为当时最优秀的中文处理工具之一。这个系统主要应用于自然语言处理(NLP)领域,尤其在中文文本分析中扮演着核心角色。NLPIR/ICTCLAS2014具有...

    ictclas4j分词工具包

    最好的中分分词工具ictclas 最好的中分分词工具ictclas 最好的中分分词工具ictclas

    NLPIR-ICTCLAS分词系统开发手册2016版1

    NLPIR-ICTCLAS分词系统是用于中文文本处理的重要工具,主要功能是对中文文本进行精确的词法分析,即分词。这个系统由NLPIR团队开发,版权归属于2016年的Kevin Zhang。NLPIR(Natural Language Processing and ...

    ICTCLAS分词系统研究

    ICTCLAS 中文分词 中科院 ICTCLAS 中文分词 中科院

    ICTCLAS中文分词系统

    5. **API接口**:在压缩包中的“API”文件夹可能包含系统提供的编程接口,开发者可以通过这些接口将ICTCLAS集成到自己的应用中,进行定制化的分词操作。 6. **Demo演示**:“Demo”文件夹可能包含示例程序,用于...

    中文分词开发版ICTCLAS2011-SDK

    这个是中文分词开发版,源码,自己拿着用吧,效果很不错,ICTCLAS2011-SDK-release。好不好您说了算

    ICTCLAS中文分词(C++语言)

    - **Demo**:演示程序,展示了如何调用ICTCLAS库进行分词操作,用户可以参考此部分快速上手。 - **Sample**:示例数据,包括训练语料库和预处理后的测试语料库,用于理解和验证系统的性能。 - **Doc**:文档,...

    JAVA实现ICTCLAS2015分词

    在IT领域,分词是自然语言处理(NLP)中的一个关键步骤,它涉及到将连续的文本分割成具有语义意义的基本单位,如词语。在这个场景中,我们关注的是使用JAVA来实现中科大(University of Science and Technology of ...

    NLPIR-ICTCLAS2014分词系统开发手册1

    NLPIR/ICTCLAS2014分词系统是一款专用于自然语言处理(NLP)的工具,由Kevin Zhang开发并维护。该系统的核心功能是进行中文文本的分词,这是理解和分析中文文本的基础步骤。分词是将连续的汉字序列切分成具有语义的...

    ICTCLAS分词器

    这些文档详细解释了ICTCLAS的原理、功能、参数设置以及可能遇到的问题及其解决办法,是理解和使用该分词器的重要参考资料。 4. **Sample**:样例数据或者测试用例,可能包含一些预处理好的文本文件和对应的分词结果...

    VC++ C# 多种分词方法

    xerdoc分词,基于ICTCLAS的Java版本分词。 文本分词词典,分词的词典,可以提供分词数据源。-containing more than Segmentation. Graduation was the time of hope for all the Chinese Processing usable to. ...

    ICTCLAS-NLPIR2016分词大会演讲

    张华平老师-ICTCLAS-NLPIR2016分词大会演讲PPT

    ICTCLAS50分词系统API-Delphi

    delphi下调用ICTCLAS50的接口文件

    ICTCLAS分词器 linux版本

    ICTCLAS分词器 linux版本 中科院开发的算法

    解决NLPIR-ICTCLAS2014分词系统词库过大,造成读取缓慢问题

    解决NLPIR-ICTCLAS2014分词系统词库过大,造成读取缓慢问题 需要结合我的blog来看: http://blog.csdn.net/zengraoli/article/details/38369969

    ICTCLAS分词系统-java实现

    ICTCLAS分词的实现案例,完整的使用java代码实现,可以直接导入工程运行。

    中文分词软件ICTCLAS

    中文分词标注软件,开源版ICTCLAS,C++环境,用用还不错。

    中科院中文分词系统ICTCLAS2015

    中科院的中文分词系统ICTCLAS是从事文本挖掘研究工作的学者们所广泛使用的软件,在此就不多作介绍了。这是该软件的2015版本,欢迎各位学者下载使用。

Global site tag (gtag.js) - Google Analytics