hadoopСѧ��
������
������
  • ע������2018-09-13
  • ������160
  • QQ3234520070
  • ���360ö
  • ��˿0
  • ��ע0
�Ķ���19473�ظ���0

HanLP�ִʹ����е�ViterbiSegment�ִ�����

¥��#
���� �����ڣ�2019-08-05 10:31
��ƪ���½��ص㽲��hanlp��ViterbiSegment��Ȼ���Դ���6���࣬�����漰��֪��������������ִ�����Ҳ���漰�����ֵķִ�������Ϊ��Щ�ִ���������������ʵ���г��õģ�����ViterbiSegmentҲ������ֱ�ӷ�װ��HanLP���еķִ���������Ҳ�Ƽ�ʹ�ø÷ִ�����ͬʱ�ı�������Լ�����һЩ��Ȼ���Դ���������еķִ���Ҳ�����ʹ����ViterbiSegment�ִ�����

��������»�����ܸ��ִʴʵ��ļ���ʹ��λ���Լ����ã�����С����ǿ��˽��������Ӧ�ò�������github�������Ԥ�Զ��岻��Ч�����������������⣬��ƪ�����ݱȽ϶࣬�����ղغ���ϸ����
1. �ִ������ñ���
�ִ�����������ö�����Config.��Ȼ���Դ���2���У��������ǽ��ִ���ص��������ñ��������±�

ͼƬ��ͼ1.jpg


����������ʲôʱ��ʵ�����أ�������϶��Ƿִʿ�ʼǰ�ͻ�ʵ��������HanLP���е�ViterbiSegment�ִ������������ļ̳й�ϵ������ͼ��ʾ��

ͼƬ��ͼ2.jpg


�ɼ̳й�ϵͼ���Կ�����ֻҪʵ����ViterbiSegment�����Ȼ�ִ��Segment()��ʼ�����ڸ÷�����ʵ�����ִ������ö���config����Щ���ñ������ǹ��б�������˿�����ViterbiSegment��ʵ����Ϊ�����ֱ�����ⲿ�޸ġ���ôʲôʱ����ʹ����Щ���ñ����أ���Ȼ���ڷִʵ�ʱ�򣬾������ĸ�����ĸ������أ���Ȼ��ViterbiSegment���List<Term> segSentence(char[] sentence)������
������ע���ϱߵ�3���࣬����ViterbiSegment�ķִʷ�������������3�����С�
2. �ʵ��ʹ���������Ⱥ�˳��Ҳ���ִܷ����̣�
����֪���˴ʵ����ñ���ʹ�õ�λ�ú󣬾Ϳ���ȷ��ÿ���ʵ��ʹ���������Լ�ÿ���ʵ��ʹ��˳��
1. ����ַ�
��1��������ͼ
��Ӧ����Ϊvoid generateWordNet(final WordNet wordNetStorage)���ڴ˷�����ϵͳʹ��CoreNatureDictionary.txt�ļ��зֳ����п��ܵķִ�·������ʱ������ñ���useCustomDictionaryΪtrue����CustomDictionary.txt�еĴ�Ҳ���ǽ�����˵��CustomDictionary.txt���ȼ���ߡ�������Ȼ���Դ���3���Կ���CoreNatureDictionary.txtʵ����Ҳ�䵱��������Ա�ע�ķ���������ijЩ����Դ�Ҳ�г��˴��������Լ������Զ�Ӧ��Ƶ�Ρ�
��2���û����ƴʵ��Ԥ
������ñ���useCustomDictionaryΪtrue������Ҫʹ��CustomDictionary.txt���и�Ԥ����ִ���±߶�Ӧ�ķ��������������ò��衣�û��ʵ��Ԥ�����Ƿ����ȫ�з������ֲ�ͬ�����������ñ���indexMode>0ʱ����ϵͳ����ȫ�з�ģʽʱ����Ӧ����Ϊ

List<Vertex> combineByCustomDictionary(List<Vertex> vertexList, DoubleArrayTrie<CoreDictionary.Attribute> dat, final WordNet wordNetAll)��

���indexMode=0����ϵͳ������ͨ�ִ�ģʽ����Ӧ����Ϊ

List<Vertex> combineByCustomDictionary(List<Vertex> vertexList, DoubleArrayTrie<CoreDictionary.Attribute> dat)��

�ӵ��õķ������Dz��ѿ�����ȫ�з�ʱϵͳ�����CustomDictionary.txt��ӷִ�·��������ͨ�з�ʱ��ϵͳ�����CustomDictionary.txt�ϲ�·������Ҳ����Ϊʲô�е�ʱ�������Ѿ���CustomDictionary.txt��������´�ȴ����Ч��ԭ����Ϊһ������CoreNatureDictionary.txt�����˴�ͼ�Ͳ��������µ�·���嵽���зִ�·���м䣬��ʱ��ȥ���Ҳ��޸�CoreNatureDictionary.txt�е�����ֻ�ʰɡ�

��3��ά�ر�ѡ������·��
��Ӧ����ΪList<Vertex> viterbi(WordNet wordNet)�����˾͵õ���һ���ֵַķִʽ������Ҫע��HanLP��Viterbi�ִ�ֻ����viterbi�����������·���������������
3. ����ʶ��
������ñ���numberQuantifierRecognizeΪtrue�����ڴַֽ���Ļ����Ͻ������ֺϲ�����������ֱ�������ò�����Ӧ����Ϊ
void mergeNumberQuantifier(List<Vertex> termList, WordNet wordNetAll, Config config)��
4. ʵ��ʶ��
���ñ���nerΪtrueʱ������Ҫ���и���ʵ���ʶ�𣬼�������ִ�С���Ҫע��ñ���������ʵ��ʶ�����Ӱ�죬ֻҪ��������ʵ�����ñ���Ϊtrue����ner�ͻ�Ϊtrue�����nerΪfalse���������±߸���ʵ��ʶ��������Ա�ע���ڡ�
��1���й�����ʶ��
ִ�д˲������ñ���nameRecognize����Ϊtrue�����÷���Ϊ
PersonRecognition.recognition(vertexList, wordNetOptimum, wordNetAll)������ʹ������������ת�ƾ���nr.tr.txt�ͷ������nr.txt������HanLP���ṩѵ�����ϣ������Լ�Ҳ���ѵõ��н�ɫ��ע�����ϣ��������һ��ֻ�޸�nr.txt�ļ���ɾ��nr.txt.bin�ļ�����Ч��
��2����������ʶ��
ִ�д˲������ñ���translatedNameRecognize����Ϊtrue�����÷���Ϊ
TranslatedPersonRecognition.recognition(vertexList, wordNetOptimum, wordNetAll)����Ҫע������������ʶ��û�������������ƥ��ִʷ����漰���Ĵʵ�Ϊnrf.txt������û��޸ĸôʵ䣬����Ҫɾ��nrf.txt.trie.datʹ����Ч��
��3���ձ�����ʶ��
ִ�д˲������ñ���japaneseNameRecognize����Ϊtrue�����÷���Ϊ
JapanesePersonRecognition.recognition(vertexList, wordNetOptimum, wordNetAll)����Ҫע���ձ�������ʶ��û�������������ƥ��ִʷ����漰���Ĵʵ�Ϊnrj.txt������û��޸ĸôʵ䣬����Ҫɾ��nrj.txt.trie.dat��nrj.txt.value.datʹ����Ч��
��4������ʶ��
ִ�д˲������ñ���placeRecognize����Ϊtrue�����÷���Ϊ
PlaceRecognition.recognition(vertexList, wordNetOptimum, wordNetAll)������ʹ������������ת�ƾ���ns.tr.txt�ͷ������ns.txt������HanLP���ṩѵ�����ϣ������Լ�Ҳ���ѵõ��н�ɫ��ע�����ϣ��������һ��ֻ�޸�ns.txt�ļ���ɾ��ns.txt.bin�ļ�����Ч��
��5��������ʶ��
ִ�д˲������ñ���organizationRecognize����Ϊtrue�����÷���Ϊ
OrganizationRecognition.recognition(vertexList, wordNetOptimum, wordNetAll)��ע�������ڵ��û�����ʶ��֮ǰ�Ƚ�����һ��ʶ��Ҳ���Dz��������������͵�����ʶ�������ͨ���������������ʶ��ʹ�ò��������漰���ļ���ת�ƾ���nt.tr.txt�ͷ������nt.txt������HanLP���ṩѵ�����ϣ������Լ�Ҳ���ѵõ��н�ɫ��ע�����ϣ��������һ��ֻ�޸�nt.txt�ļ���ɾ��ns.txt.bin�ļ�����Ч����������ʶ����Ҫ��������ʶ����нϸ�׼ȷ�ʡ�
���ˣ��ִ�������ȫ�������ˡ�
����Ҫע���±ߵ�����

����û����ϵͳ��ʹ�õĴʵ���
�������ʵ�.txt
ȫ��������ȫ.txt
�����ʵ�.txt
�Ϻ�����.txt
�ִ����ﲹ��ʿ�.txt
��Щ�ʵ��Ƕ�ϵͳ�еĴʵ�ĸ��¼�¼�������������µ�������������������������������ӱ��档
���⣬�����Ҫ�������������������������ֱ����CoreNatureDictionary.txt����ӣ������3������ʵ�壬
���Ҫȥ�����ʶ�������ʵ�����ֱ������Ӧ��nr.txt��ns.txt��nt.txt����ӡ�
3. ���̷ִ߳�
HanLP��ViterbiSegment�ִ�������֧�ֶ��̵߳ģ��߳����������ñ���threadNumber�����ģ��ñ���Ĭ��Ϊ1��HanLP����˵ViterbiSegmet�ִ�Ч����ߵ�ԭ��϶�Ҳ��ViterbiSegment�ִ���֧�ֶ��̷ִ߳�������ء���������ViterbiSegment�ִ����ڲ������е��������ʵ�幦�ܣ������Щ����ʵ��ʶ���Ч��Ҳ��ܸߡ�������ʵ�ֵĶ��̷ִ߳��أ���Segment���List<Term> seg(String text)���������ʵ�ֵģ���Ҫע��HanLP�Ķ��̷ִ߳�ָ����һ��������һ�����ı���������һ�δ����������ı���
���ķ����� baiziyu ��ר�������������Ѿ����˲����޸ģ����ڴ���Ķ�����ӭһ����ѧϰ��

ϲ��0 ����0
DKHadoop���Ż������
�ο�

���ض���