专栏首页海天一树某公司自然语言处理算法笔试题

某公司自然语言处理算法笔试题

1 请列出几种文本特征提取算法

答:文档频率、信息增益、互信息、X^2统计、TF-IDF

2 简述几种自然语言处理开源工具包

答:LingPipe、FudanNLP、OpenNLP、CRF++、Standord CoreNLP、IKAnalyzer

3 简述无监督和有监督算法的区别

答: (1)有监督学习:对具有概念标记(分类)的训练样本进行学习,以尽可能对训练样本集外的数据进行标记(分类)预测。这里,所有的标记(分类)是已知的。因此,训练样本的岐义性低。 无监督学习:对没有概念标记(分类)的训练样本进行学习,以发现训练样本集中的结构性知识。这里,所有的标记(分类)是未知的。因此,训练样本的岐义性高。聚类就是典型的无监督学习 (2)有监督学习的样本全部带标记,无监督学习的样本全部不带标记。 PS:部分带标记的是半监督学习 (3)训练集有输入有输出是有监督,包括所有的回归算法分类算法,比如线性回归、决策树、神经网络、KNN、SVM等;训练集只有输入没有输出是无监督,包括所有的聚类算法,比如k-means 、PCA、 GMM等

4 请简述几种熟悉的分类算法

答:kNN,kMeans,决策树,随机森林等

5 以下代码是Java实现中文分词,请简述分词过程

public class SplitChineseCharacter {
    public static void main(String[] args) {
        String input = "太好了,今天是星期六啊";
        new Split(input).start();
    }
}
class Split {
    private String[] dictionary = {"今天", "是", "星期", "星期六"};
    private String input = null;
    public Split(String input) {
        this.input = input;
    }
    public void start() {
        String temp = null;
        System.out.println(this.input.length());
        for(int i = 0; i < this.input.length(); i++) {
            temp = this.input.substring(i);
            if(this.isInDictionay(temp)) {
                System.out.println(temp);
                this.input = this.input.replace(temp, "");
                i = - 1;
            } 
        } 
        if(null != this.input && !"".equals(this.input)) {
            this.input = this.input.substring(0, this.input.length() - 1);
            this.start();
        }
    }
    public boolean isInDictionay(String temp) {
        for(int i = 0; i < this.dictionary.length; i++) {
            if(temp.equals(this.dictionary[i])) {
                return true;
            }
        }
        return false;
    }
}

运行结果:

星期六
是
今天

本文分享自微信公众号 - 海天一树(gh_de7b45c40e8b),作者:?

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-04-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • NOIP 2018普及组复赛C++详细题解报告(2)

    (1)ci最大值是10亿,n最大值是10万,相乘明显会超过INT_MAX,所以本题要用long long才有可能得满分。若用int,最多只能得80分。 (2)若...

    海天一树
  • 小朋友学Java(6):封装

    面向对象有三大特征:封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。 本节讲封装。 程序1 class W...

    海天一树
  • 小朋友学Java(5):静态方法

    先编写程序: class Demo { public void fun1() { System.out.println("Hello")...

    海天一树
  • 伴随 P5.js 入坑创意编程

    上一篇文章:填坑!完结娱乐圈明星关系图谱 发布后,古柳印象里过往留下的坑貌似只剩下 图像检索(一):因缘际会与前瞻 的后续实践代码(原文里给了参考代码链接)和在...

    古柳_DesertsX
  • 对象与类

    梨涡浅笑
  • 聊聊rocketmq的registerConsumer与unregisterConsumer

    本文主要研究一下rocketmq的registerConsumer与unregisterConsumer

    codecraft
  • @Component,@Service 等注解是如何被解析的

    @Component和@Service都是工作中常用的注解,Spring如何解析?

    芋道源码
  • @Component,@Service等注解是如何被解析的

    3.@EnableAutoConfiguration处理逻辑(最晚20200712)

    温安适
  • 箭头函数中的'this'值

    那么 为什么hobby的值输出成功,而name不能够输出呢?是因为lucifer丑吗?其实那只是其中一个因素,还有一个因素就是在ZnHobbies方法中...

    学前端
  • Apache Struts2 Remote Code Execution (S2-046)

    风流

扫码关注云+社区

领取腾讯云代金券