美文网首页
语料库准备(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)

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