
1 分词
分词是自然语言处理的基础,分词准确度直接决定了后面的词性标注、句法分析、词向量以及文本分析的质量。英文语句使用空格将单词进行分隔,除了某些特定词,如how many,New York等外,大部分情况下不需要考虑分词问题。但有些情况下,没有空格,则需要好的分词算法。
简单的分词算法主要有:
2 正向最大匹配
从左到右尽可能划分出一段连续字符,使得其等于词典中的某个词,然后将这段连续字符提取出来,对余下的部分进行同样的操作。如果第一个字符不是词典中任何一个词的前缀,那么这个字符单独作为一个词。
3 逆向最大匹配
跟正向最大匹配的唯一不同是从右到左尽可能划分出一段连续字符。
4 双向最大匹配
歧义指对于一个句子有多个分词结果。汉语文本中 90.0%左右的句子,FMM 和 BMM 的切分完全重合且正确,9.0%左右的句子 FMM 和 BMM 切分不同,但其中必有一个是正确的(歧义检测成功),只有不到1.0 %的句子,或者 FMM 和 BMM 的切分虽重合却是错的,或者FMM 和 BMM 切分 不同但两个都不对(歧义检测失败)。
  
本文介绍了基于单词搜索树(Trie Tree)的单词断句分词( Word Breaker)算法及其源代码。
5 节点信息
public class TrieNode
{
    public TrieNode[] children { get; set; } = new TrieNode[26];
    // isEndOfWord is true if the node represents
    // end of a word
    public bool isEndOfWord { get; set; } = false;
    public TrieNode()
    {
        isEndOfWord = false;
        for (int i = 0; i < 26; i++)
        {
            children[i] = null;
        }
    }
}public class TrieNode
 {
 
     public TrieNode[] children { get; set; } = new TrieNode[26];
    // isEndOfWord is true if the node represents
     // end of a word
     public bool isEndOfWord { get; set; } = false;
    public TrieNode()
     {
 
         isEndOfWord = false;
         for (i










![【洛谷 P8602】[蓝桥杯 2013 省 A] 大臣的旅费 题解(图论+深度优先搜索+树的直径+链式前向星)](https://img-blog.csdnimg.cn/direct/62b79a590cbf4d4cb03e4929ea10aeb3.png)







