语言罗马尼亚语分词工具-Kuromoji 日本語単語割り切れツール:Kuromoji

环境:对日开发语言处理

 

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

SFML和Visual Studio

分析:

介绍

假诺你在Visual Studio IDE(Visual C
++编译器)中接纳SFML,本课程是第一个应该阅读的学科。它将解释怎么样安排您的SFML项目。

  任务1:词语拆分

安装SFML

率先,您必须从下载页面下载SFML
SDK 。

您必须下载与你的Visual C ++版本相匹配的软件包。事实上,用VC ++
10(Visual Studio 2010)编译的库不会与VC ++ 12(Visual Studio
2013)包容。假如没有为您的Visual C
++版本编译的SFML包,则必须 和谐构建SFML

友善构建SFML方法(假诺有谈得来vs版本SDK可径直下载SDK使用跳过构建,直接看下文vs2017中SML
SDK的配制)

  任务2:转换情势

1.安装CMake 下载地址

2.官网下载SFML Source code
解压到任意路径 本例中放在d:/sfml

3.开辟CMake 设置如下①SFML Source code路径**②工程变更路径③生成
**

语言 1

4.首先次拔取编译器

语言 2

 

5.取舍配制

语言 3

 

 

 配制表达,一般默认就可以了(提议改下生成路径默认在C:\
Program Files)

 

变量 含义
CMAKE_BUILD_TYPE 该选项选择构建配置类型。有效值是“调试”和“释放”(还有其他类型,如“RelWithDebInfo”或“MinSizeRel”,但它们是为了更高级的构建)。请注意,如果为支持多种配置(如Visual Studio)的IDE生成工作空间,则会忽略此选项,因为工作空间可以同时包含多个配置。
CMAKE_INSTALL_PREFIX 这是安装路径。默认情况下,它被设置为操作系统上最典型的安装路径(Linux和Mac OS X为“/ usr / local”,Windows为“C:\ Program Files”等)。在构建SFML之后安装SFML并不是强制性的,因为您可以直接从构建它们的地方使用二进制文件。这可能是一个更好的解决方案,但是,要正确安装它们,以便可以删除构建过程中生成的所有临时文件。
CMAKE_INSTALL_FRAMEWORK_PREFIX(Mac OS X only) 这是框架的安装路径。默认情况下,它被设置为根库文件夹ie / Library / Frameworks。正如上面对CMAKE_INSTALL_PREFIX所述,在构建SFML之后并不强制安装SFML,但是这样做肯定是比较干净的。
如果选择BUILD_FRAMEWORKS,则此路径也用于在系统上安装sndfile框架(Apple不提供所需的依赖项)和SFML作为框架。
BUILD_SHARED_LIBS 这个布尔选项控制你是否将SFML构建为动态(共享)库,或者是静态的。
此选项不应与SFML_USE_STATIC_STD_LIBS同时启用,它们是互斥的。
SFML_BUILD_FRAMEWORKS(Mac OS X only) 这个布尔选项控制你是否构建SFML作为 框架捆绑 或作为 dylib二进制文件。构建框架需要选择BUILD_SHARED_LIBS。
建议在发布应用程序时使用SFML作为框架。但请注意,SFML不能作为框架在调试配置中构建。在这种情况下,请使用dylib代替。
SFML_BUILD_EXAMPLES 该布尔选项控制SFML示例是否与库一起构建。
SFML_BUILD_DOC 这个布尔选项控制你是否生成SFML文档。请注意, Doxygen工具必须安装并可访问,否则启用此选项将产生错误。
在Mac OS X上,您可以将经典Unix doxygen二进制文件安装到/ usr / bin或任何类似的目录中,或者将Doxygen.app安装到任何“应用程序”文件夹中,例如〜/ Applications。
SFML_USE_STATIC_STD_LIBS(Windows only) 这个布尔选项选择链接到SFML的C / C ++运行时库的类型。
TRUE静态链接标准库,这意味着SFML是独立的,不依赖于编译器特定的DLL。
FALSE(缺省值)动态链接标准库,这意味着SFML依赖于编译器的DLL(用于Visual C ++的msvcrxx.dll / msvcpxx.dll,用于GCC的libgcc_s_xxx-1.dll / libstdc ++ – 6.dll)。设置这个时要小心。该设置必须符合您自己的项目设置,否则您的应用程序可能无法运行。
此选项不应与BUILD_SHARED_LIBS同时启用,它们是互斥的。
CMAKE_OSX_ARCHITECTURES(Mac OS X only) 该设置指定了应该构建SFML的体系结构。建议的值是“x86_64”,因为不再支持32位版本。
SFML_INSTALL_XCODE_TEMPLATES(Mac OS X only) 这个布尔选项控制CMake是否将Xcode模板安装到你的系统上。请确保/ Library / Developer / Xcode / Templates / SFML存在并且是可写的。有关这些模板的更多信息,请参阅Mac OS X的“入门”教程。
SFML_INSTALL_PKGCONFIG_FILES(Linux shared libraries only) 这个布尔选项控制CMake是否将pkg-config文件安装到你的系统上。pkg-config是一个为查询已安装库提供统一接口的工具。

修改改生成SDK的门路

语言 4

 

 

 

 6. 选择Generate   完成后  选Open
Project

 

7.生成 SFML SDK

语言 5

 

语言 6

 

 9.在D:/sfml 2.0 文件夹即 是大家生成
的SFML SDK 

 

 

在VS2017中配置SFML

率先要做的是采用要开创的类型项目:您必须选用“Win32应用程序”。该引路提供了多少个挑选来定制项目:假若你需要控制台,请拔取“控制台应用程序”;假若您不需要,请选拔“Windows应用程序”。如果您不希望被自动生成的代码烦恼,请选中“空项目”框。
为了本教程的目标,您应该创建一个main.cpp文件并将其添加到项目中,以便我们得以访问C
++设置(否则Visual
Studio不知情你将为此项目采纳哪个种类语言)。稍后我们将解释放入什么内容。

在新建项目上右键的开辟项目性质:

那多少个途径在“调试”和“发行版”配置中都是平等的,因而你可以为品种全局设置它们(“所有配置”)。

语言 7

 

 

 语言 8

 

到此ok!可以在vs2017 中畅玩 SFML SDK库了

 

日文的款型转换可以用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地图