美文网首页
语料库准备(JAVA)

语料库准备(JAVA)

作者: Stark_Dylan | 来源:发表于2017-07-16 15:10 被阅读947次

项目环境:JDK1.8,Maven3.39,IDEA
项目仓库:Github地址
目前数据库表结构:

表结构

t_corpus_base:基础预料表,存储所有的会话,目前为创建普通索引,完整匹配(select * from t_corpus_base where content = '你好' limit 1)。在后续文章中会修改为%匹配,到时候再做全文检索。

base 类型 注释 索引
id int id PRIMIRY
content varchar(300) 内容 varchar(150)

t_corpus_tree:对应表,qid为会话开始ID,aid为该句话对应的回答或者下一个用户可能的问题,后续会做一些表结构的调整。暂时够基础功能使用。

tree 类型 注释 索引
id int id PRIMIRY
qid int 会话开始ID int
aid int 会话下一个ID int

t_corpus_butt:在tree中没有查到的内容,暂时放到这里,用于接下来的学习。表结构后续会发生大的变化,当前仅做存储未查询到的会话。

butt 类型 注释 索引
id int id PRIMIRY
qid int 会话开始ID int

表设计请遵循单一功能原则

maven 依赖库与模块划分(够支持当前所需,后续有需求再增加):

    <modules>
        <module>model</module>
        <module>dao</module>
        <module>service</module>
        <module>common</module>
        <module>web</module>
    </modules>

    <properties>
        <spring.version>4.3.5.RELEASE</spring.version>
        <mybatis.version>3.4.1</mybatis.version>
        <mybatis-spring.version>1.3.1</mybatis-spring.version>
        <mysql.version>6.0.6</mysql.version>
    </properties>

    <dependencies>
        <!-- Spring包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- redis cache related.....start -->
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
            <version>1.6.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.7.3</version>
        </dependency>
        <!-- redis cache related.....end -->

        <!-- mybatis驱动包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${mybatis-spring.version}</version>
        </dependency>

        <!-- mysql驱动包 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>

        <!-- dbcp数据源 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.29</version>
        </dependency>

        <!-- junit测试包 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>

        <!-- json数据 -->
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.13</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>1.9.13</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.34</version>
        </dependency>

        <!-- log4j日志包 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>1.7.20</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.1.7</version>
        </dependency>

        <!-- jstl 标签库 -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>

        <!--分词-->
        <dependency>
            <groupId>edu.stanford.nlp</groupId>
            <artifactId>stanford-corenlp</artifactId>
            <version>3.8.0</version>
        </dependency>
        <dependency>
            <groupId>edu.stanford.nlp</groupId>
            <artifactId>stanford-corenlp</artifactId>
            <version>3.8.0</version>
            <classifier>models</classifier>
        </dependency>
        <dependency>
            <groupId>edu.stanford.nlp</groupId>
            <artifactId>stanford-corenlp</artifactId>
            <version>3.8.0</version>
            <classifier>models-chinese</classifier>
        </dependency>
    </dependencies>

    <build>
        <finalName>smart</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.2.1.v20140609</version>
                <configuration>
                    <httpConnector>
                        <port>9441</port>
                    </httpConnector>
                    <scanIntervalSeconds>2</scanIntervalSeconds>
                </configuration>
            </plugin>
        </plugins>
    </build>

jdbc.properties(注意URL后边的参数):

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/smart-butt?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
jdbc.username=
jdbc.password=

Maven 基于idea的多模块项目搭建

有太多的文章都是授之鱼而非渔。准备 IDEA,MAVEN 和 JDK的环境

  1. JDK下载安装与配置,MAVEN下载安装与配置,IDEA下载与破解
  2. 打开IDEA,新建maven项目


    img_1.png
    img_2.png
    img_3.png
    img_4.png

下面开始新建模块:

img_5.png
img_6.png
img_7.png
img_8.png

这里做第一个示例,接下来同样的步骤创建完 service, model, dao(注意不要创建web)。此时的项目结构是:


img_9.png
web 有些特殊,是这样创建的:
img_10.png
一直Next到底就好了。

接下来我们开始配置模块的依赖关系:

web:common, service, model
service: common, model, dao
dao: model

Mac 下使用 command + ; 打开项目架构先进行dao 的依赖配置

img_11.png
img_12.png

接下来自己按照上边所说的依赖关系挨个进行设置,应用,确定即可。

但是这并不是结束了,因为我们是maven的多模块项目,所以还应当按照我们配置的依赖在每个模块的pom中配置依赖的模块(我这里使用web模块为示例):


img_15.png

其余的模块大家自己配置。


接下来引入我们所需要的库,为了方便,我们引入到最外层的Pom文件中:

img_13.png

将文章开头的需要的库包括插件粘贴进去即可,maven将会自动导入,这个地方如果之前没有下载过可能会很慢。为了方便我们管理,我们打开右侧的maven选项,如果没有,点击左下角按钮打开:

img_14.png

这里因为我们是多模块项目,所以在修改了依赖中的内容之后,一定要在最外层进行cleaninstall(或者 compile),保证全部的模块都重新的编译。

img_16.png

接下来,我们去web模块中配置spring,servlet,jdbc,log等内容

img_17.png

我们发现没有java文件夹,所以直接右键创建一个,然后在项目结构中将其指定为源码类型的文件夹。


img_18.png

接下来就是里边的spring等配置了,这些大家直接去仓库看吧,基本都相同。至此,我们大致的将语料库的架子搭建了起来。

相关文章

  • 语料库准备(JAVA)

    项目环境:JDK1.8,Maven3.39,IDEA项目仓库:Github地址目前数据库表结构: t_corpus...

  • NLTK学习记录2:使用语料库和词汇资源

    内置的语料库 或者 从语料库中提取文本信息 再例如Brown语料库 内置语料库基本函数 载入本地语料库 条件频率分...

  • pyhanlp文本分类与情感分析

    语料库 本文语料库特指文本分类语料库,对应IDataSet接口。而文本分类语料库包含两个概念:文档和类目。一个文档...

  • 2019-08-05

    请问语料库的作用主要是什么,如何构建领域语料库,领域语料库建好以后,如何发挥作用。如把军事语料库作为一项研究内容的...

  • #6801#

    第4章 语料库与语言知识库 语料库统计 两层含义:利用语料库对于语言的某个方面进行研究;一句语料库所反应出来的语言...

  • Coca

    语料库

  • 自然语言处理——4. 语料库与语言知识库

    基本概念 1. 语料库 语料库(corpus)就是存放语言材料的仓库(语言数据库)。 基于语料库进行语言学研究-语...

  • 语料库与术语库

    在线语料库(国内) 语料库:http://yulk.org/[https://link.zhihu.com/?ta...

  • Python 语料库的搭建

    语料库就是我们要分析文件的合计。 语料库构建 http://blog.csdn.net/happylife_hah...

  • Python自然语言处理学习笔记(二)

    1.文本语料库 1)内容 导入corpus包得到各个文本语料库:from nltk.corpus import *...

网友评论

      本文标题:语料库准备(JAVA)

      本文链接:https://www.haomeiwen.com/subject/ufitkxtx.html