泰语分词工具-Kuromoji 扶桑語単語割り切れツール:Kuromoji

知识点目录==========>传送门

 

 

XML是咋样就无须说了文本标记语言。

最首要记录如何对XML文件举行增删改查。

Xml的操作类都留存System.xml命名空间下边。

应用型的间接上代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace XMLTest
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.创建XML文档对象
            XmlDocument doc = new XmlDocument();

            //创建头
            XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "UTF-8", null);

            //添加节点
            doc.AppendChild(xmlDeclaration);
            XmlElement xmlElement = doc.CreateElement("Persons");

            //给节点添加属性
            xmlElement.SetAttribute("Name", "一小时小超人");
            doc.AppendChild(xmlElement);


            XmlElement xmlElement1 = doc.CreateElement("Person");
            //给节点添加文字
            xmlElement1.InnerXml = "小超人";
            xmlElement.AppendChild(xmlElement1);
            doc.Save("Test.xml");

        }
    }
}

 

<?xml version="1.0" encoding="UTF-8"?>
<Persons Name="一小时小超人">
  <Person>小超人</Person>
</Persons>

以此地点重点讲一下
XmlElement.InnerXml和XmlElement.InnerText的界别。代码演示

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace XMLTest
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.创建XML文档对象
            XmlDocument doc = new XmlDocument();

            //创建头
            XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "UTF-8", null);

            //添加节点
            doc.AppendChild(xmlDeclaration);
            XmlElement xmlElement = doc.CreateElement("Persons");

            //给节点添加属性
            xmlElement.SetAttribute("Name", "一小时小超人");

            doc.AppendChild(xmlElement);

            XmlElement xmlElement1 = doc.CreateElement("Person");
            //给节点添加文字
            xmlElement1.InnerXml = "<演示>小超人</演示>";
            xmlElement.AppendChild(xmlElement1);
            XmlElement xmlElement2 = doc.CreateElement("Person");
            //给节点添加文字
            xmlElement2.InnerText = "<演示>小超人</演示>";

        //给节点添加属性
        xmlElement2.SetAttribute(“name”, “一时辰小超人”);

            xmlElement.AppendChild(xmlElement2);

            doc.Save("Test.xml");

        }
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<Persons Name="一小时小超人">
  <Person>
    <演示>小超人</演示>
  </Person>
  <Person name="一小时小超人">&lt;演示&gt;小超人&lt;/演示&gt;</Person>
</Persons>

 

 

很显著的看出来即便字符串是个标签,Interxml会当成标签给您添加,innterText会转义。

上面演示一下读取操作

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace XMLTest
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.创建XML文档对象
            XmlDocument doc = new XmlDocument();
            if (File.Exists("Test.xml"))
            {
                //通过文件名加载Xml,也可以通过流之类的,其他重载方法,看文档。
                doc.Load("Test.xml");

                //获取根节点
                XmlElement xmlElement = doc.DocumentElement;

                //获取根节点下面的子节点集合
                XmlNodeList nodeList = xmlElement.ChildNodes;
                //循环取每一个子节点
                foreach (XmlNode item in nodeList)
                {

                    Console.WriteLine(item.Name);

                    //获取节点属性
                    //string attributesValue=item.Attributes["属性名称"].Value;
                }
                Console.ReadKey();
            }


        }
    }
}

地点代码把常用的操作列出来了,其他的广大操作。就不一一列举了。。。。。。。。。。。。。

 

环境:对日开发语言处理

务求:分析词语,将词语中的日文单词分割,转换形式。

分析:

  任务1:词语拆分

  任务2:转换形式

 

日文的款式转换能够用kanavetor去贯彻 非凡简单
直接调用Kana类的convert方法就能够,在Kana的官网上可以观望用法(尽管看不懂介绍,看到管网的表格应该也就一目掌握了~)。

着重在于词语的拆分上:

用语拆分使用了Kuromoji,Kuromoji是一款特别好用的芬兰语分词工具,并且,分解后的词是可以自动将汉字,平假名等转换成カタカナ的,有接近需要的可以直接用那个而不用再去搜寻其他工具了。Kuromoji我找到了五个本子,一个是kuromoji,0.7.7本子,官网上说捐献给了apache,内置在Lucene的4.0,5.0本子里,由于忘记Lucene的用法,暂且不考虑。此外一个版本是kuromoji-ipadic,那么些东东和kuromoji都是一个店家出的,但是略有不同,稍微探究了一晃,kuromoji在行使的时候是不得不找到jar包,找不到源代码文件的,通过maven下载可以,可是gradle是引入不了的。而kuromoji-ipadic则是gradlle也可以引用,并且引入之后可以看出源码。此外kuromoji毕竟是原先的api,还有部分微小的败笔。

kuromoji官网:http://www.atilika.org/

Kuromoji-ipadic官网:http://www.atilika.com/en/kuromoji/

Kuromoji用法:

1         Tokenizer tokenizer = Tokenizer.builder().build();
2         for (Token token : tokenizer.tokenize("寿司が食べたい。")) {
        // token 中存放的是分割后的词 不同的属性可以取到该词的不同内容

              // surfaceForm:原内容

3             System.out.println(token.getSurfaceForm() + "\t" + );

              // baseForm:内容词语的基础 例如 食べたい⇒食べ

        System.out.println(token.getBaseForm() + "\t" + );

4 }

↑↑↑那些api对日文汉字的识别率不如下面的api(有些简体日文汉字和特别生疏的鉴别不出去,毕竟是老版本),并且遭遇不认识的汉字时token调用get方法会得到null。。。不提出利用。

Kuromoji-ipadic用法:

1         Tokenizer tokenizer = new Tokenizer() ;
2         List<Token> tokens = tokenizer.tokenize("お寿司が食べたい。");
3         for (Token token : tokens) {
4             System.out.println(token.getSurface()); // 读取到的原内容
5             System.out.println(token.getReading()); // カタカナ
6         }        

顺带一提,kuromoji-ipadic由于是用new爆发发生实例的,所以一旦你的工具或体系需要转移大量语汇,要注意不要做太多的new操作,不然会很慢很慢很慢,此时得以定义成静态常量或者单例情势。

欢迎我们评论和指教。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图