标签: nlp

对自然语言处理感兴趣的人有什么好的起点?

所以我最近提出了一些新的可能项目,这些项目必须处理从用户提交和生成的文本中获得"含义".

自然语言处理是处理这些问题的领域,经过一些初步研究,我发现OpenNLP Hub和大学合作就像尝试项目一样.而stackoverflow就是这样.

如果有人能把我与一些好的资源联系起来,从研究论文和介绍性文本到apis,我会比一个6岁的小孩打开他的圣诞礼物更开心!

更新

通过您的一条建议,我发现了opencyc("世界上最大,最完整的常识知识库和常识推理引擎").更令人惊奇的是,有一个项目是opencyc的蒸馏版本,名为UMBEL.它具有rdf/owl/skos n3语法中的语义数据.

我也偶然发现ANTLR,为解析器生成"构建识别,翻译,编译器和翻译从语法的说明".

我在这里有一个问题,列出了大量的免费和开放数据.

感谢stackoverflow社区!

nlp dcg

41
推荐指数
2
解决办法
8008
查看次数

机器学习与自然语言处理

假设您认识一名想要学习机器学习和自然语言处理的学生.

他们应该关注哪些具体的计算机科学科目以及专门设计哪些编程语言来解决这些类型的问题?

我不是在寻找你最喜欢的科目和工具,而是寻找行业标准.

示例:我猜测知道Prolog和Matlab可能对他们有所帮助.他们也可能想要研究离散结构*,微积分和统计.

*图形和树木.函数:属性,递归定义,解决重现.关系:属性,等价,偏序.证明技术,归纳证明.计数技术和离散概率.逻辑:命题演算,一阶谓词演算.正式推理:自然演绎,分辨率.用于编程正确性和自动推理的应用程序.计算中代数结构的介绍.

math nlp machine-learning

41
推荐指数
5
解决办法
2万
查看次数

序数替换

我目前正在寻找用适当的序数表示(第1,第2,第3)替换第一,第二,第三等字的方法.我上周一直在谷歌搜索,我没有找到任何有用的标准工具或NLTK的任何功能.

那么有没有或者我应该手动编写一些正则表达式?

谢谢你的建议

python ordinals nlp nltk

41
推荐指数
8
解决办法
4万
查看次数

如何检测用户输入文本的语言?

我正在处理一个接受不同语言用户输入的应用程序(目前修复了3种语言).要求是用户可以输入文本,而不必费心通过UI中提供的复选框选择语言.

是否有现有的Java库来检测文本的语言?

我想要这样的东西:

text = "To be or not to be thats the question."

// returns ISO 639 Alpha-2 code
language = detect(text);

print(language);
Run Code Online (Sandbox Code Playgroud)

结果:

EN
Run Code Online (Sandbox Code Playgroud)

我不想知道如何自己创建一个语言检测器(我已经看到很多博客试图这样做).该库应提供简单的APi,并且完全脱机工作.开源或商业封闭并不重要.

我也在SO上发现了这个问题(还有一些):

如何检测语言
如何检测文本语言?

java nlp language-detection

40
推荐指数
3
解决办法
4万
查看次数

如何将Cortana命令连接到自定义脚本?

这可能有点早,但我正在运行Windows 10 Technical Preview Build 10122.我想设置Cortana以获得自定义命令.以下是她的工作方式:

Hey Cortana, <she'll listen and process this command>
Run Code Online (Sandbox Code Playgroud)

Microsoft将处理该命令,如果没有任何内容,她将只搜索bing上的输入.但是,我想能够说出类似的话,例如

Hey Cortana, I'm going to bed now
Run Code Online (Sandbox Code Playgroud)

并让输入I'm going to bed now触发器运行批处理脚本,VBScript,命令或任何某种自定义响应,基本上执行以下操作.

C:\> shutdown -s
Run Code Online (Sandbox Code Playgroud)

有没有办法为Cortana设置预定义的自定义命令?

更新:

我创建了这个基本的YouTube教程,这个更高级的教程与相应的GitHub回购基于talkitbr的优秀且非常有用的答案如下.

起初他的答案超出了我的理解,所以我决定将其细节分解为像我这样的未来用户.

scripting nlp cortana windows-10

40
推荐指数
1
解决办法
3万
查看次数

如何返回Keras中验证丢失的历史记录

使用Anaconda Python 2.7 Windows 10.

我正在使用Keras exmaple训练语言模型:

print('Build model...')
model = Sequential()
model.add(GRU(512, return_sequences=True, input_shape=(maxlen, len(chars))))
model.add(Dropout(0.2))
model.add(GRU(512, return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(len(chars)))
model.add(Activation('softmax'))

model.compile(loss='categorical_crossentropy', optimizer='rmsprop')

def sample(a, temperature=1.0):
    # helper function to sample an index from a probability array
    a = np.log(a) / temperature
    a = np.exp(a) / np.sum(np.exp(a))
    return np.argmax(np.random.multinomial(1, a, 1))


# train the model, output generated text after each iteration
for iteration in range(1, 3):
    print()
    print('-' * 50)
    print('Iteration', iteration)
    model.fit(X, y, batch_size=128, nb_epoch=1)
    start_index = random.randint(0, …
Run Code Online (Sandbox Code Playgroud)

python nlp neural-network deep-learning keras

40
推荐指数
5
解决办法
6万
查看次数

代码高尔夫:数字到单词

代码高尔夫系列似乎相当受欢迎.我遇到了一些将数字转换为单词表示的代码.一些例子是(编程乐趣的2的权力):

  • 2 - >两个
  • 1024 - >一千二十四
  • 1048576 - >百万四万八千七百六十六

我的同事出现的算法差不多有两百行.似乎会有更简洁的方法来做到这一点.

现行指南:

  • 以任何编程语言欢迎提交的内容(我向PhiLho道歉,因为最初对此不太清楚)
  • 最大输入为2 ^ 64(请参阅以下链接,感谢mmeyers)
  • 英语输出的缩放比例较低,但欢迎使用任何算法.只需对编程语言一起评论所使用的方法.

language-agnostic nlp code-golf rosetta-stone

39
推荐指数
13
解决办法
1万
查看次数

如何使用Bert进行长文本分类?

我们知道BERT有tokens的最大长度限制=512,那么如果一篇文章的长度远远大于512,比如文本中有10000个tokens,BERT怎么用呢?

nlp text-classification bert-language-model

39
推荐指数
5
解决办法
3万
查看次数

用nltk改进人名的提取

我试图从文本中提取人名.

有没有人有他们推荐的方法?

这就是我尝试的(代码如下):我nltk用来查找标记为人的所有内容,然后生成该人的所有NNP部分的列表.我正在跳过那些只有一个NNP的人,这可以避免抓住一个单独的姓氏.

我得到了不错的结果但是想知道是否有更好的方法来解决这个问题.

码:

import nltk
from nameparser.parser import HumanName

def get_human_names(text):
    tokens = nltk.tokenize.word_tokenize(text)
    pos = nltk.pos_tag(tokens)
    sentt = nltk.ne_chunk(pos, binary = False)
    person_list = []
    person = []
    name = ""
    for subtree in sentt.subtrees(filter=lambda t: t.node == 'PERSON'):
        for leaf in subtree.leaves():
            person.append(leaf[0])
        if len(person) > 1: #avoid grabbing lone surnames
            for part in person:
                name += part + ' '
            if name[:-1] not in person_list:
                person_list.append(name[:-1])
            name = ''
        person = []

    return …
Run Code Online (Sandbox Code Playgroud)

python nlp nltk

37
推荐指数
5
解决办法
5万
查看次数

Keras文本预处理 - 将Tokenizer对象保存到文件以进行评分

我通过以下步骤(广泛地)使用Keras库训练了情绪分类器模型.

  1. 使用Tokenizer对象/类将Text语料库转换为序列
  2. 使用model.fit()方法构建模型
  3. 评估此模型

现在,使用此模型进行评分,我能够将模型保存到文件并从文件加载.但是我没有找到将Tokenizer对象保存到文件的方法.如果没有这个,我每次需要得到一个句子时都必须处理语料库.有没有解决的办法?

nlp machine-learning neural-network deep-learning keras

36
推荐指数
3
解决办法
2万
查看次数