语言模型1(N-Gram):进行NLP的基础

自然语言处理(natural language processing,NLP)是近年来发展十分迅速的一门涵盖自然语言学、数学与计算机科学的交叉性学科,研究的是在人与人交际中以及人与计算机交际中的语言问题。在现今社会中应用十分频繁,其中就有我们日常使用的语音识别输入、中英文翻译等。它不仅是社会需求十分巨大的应用技术,也是一门具有非常重要科学意义的自然科学。

  • 要掌握NLP,我们需要有概率论、信息论等预备知识
1、什么是自然语言?

(1)不是人为设计而是自然进化的,虽然人们试图强加一些规则,
(2)由语音、词汇、语法构成,
(3)语音是词汇的物质外壳,是最原始的语言,
(4)文字是记录语言的书写符号系统。

2、模型简述

语言模型(language model,LM)在自然语言处理中占有着重要的地位,尤其在基于统计的语音识别、机器翻译、句法分析等相关研究中得到了广泛应用。目前主要采用的是n元语法模型,这种模型构建简单、直接。

(1)n元语法

一个语言模型通常表现为构建字符串s的概率分布p(s),这里p(s)试图反映的是字符串s作为一个句子出现的频率,即是组成字符串的这个组合在训练语料库中出现的似然。需要注意的是,与语言学中不同,语言模型与句子是否合乎语法逻辑无关,即使一个句子组合完全合乎语法,但这个组合在语料库中出现的似然极小࿰

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
n-gram模型是一种用于自然语言处理的统计语言模型,用于预测一个词语在给定前文的情况下出现的概率。在R语言中,可以使用`quanteda`包来实现n-gram模型。 首先,需要安装`quanteda`包,可以使用以下命令进行安装: ```R install.packages("quanteda") ``` 安装完成后,可以使用以下代码创建n-gram模型: ```R library(quanteda) # 创建一个文本对象 text <- c("I love coding in R", "R is a powerful language") # 创建一个corpus对象 corpus <- corpus(text) # 创建一个token对象 tokens <- tokens(corpus) # 创建一个n-gram模型 ngram_model <- tokens_ngrams(tokens, n = 2) ``` 上述代码中,我们首先创建了一个文本对象`text`,然后将其转换为corpus对象`corpus`,再将corpus对象转换为token对象`tokens`。最后,使用`tokens_ngrams`函数创建了一个n-gram模型`ngram_model`,其中`n`参数指定了n-gram的大小。 创建完n-gram模型后,可以使用以下代码获取n-gram的频率信息: ```R # 获取n-gram的频率信息 ngram_freq <- textstat_frequency(ngram_model) ``` 上述代码中,我们使用`textstat_frequency`函数获取了n-gram模型中各个n-gram的频率信息。 除了获取频率信息外,还可以使用n-gram模型进行文本生成和预测。例如,可以使用以下代码生成一个新的文本: ```R # 使用n-gram模型生成新的文本 new_text <- generate(ngram_model, n = 10) ``` 上述代码中,我们使用`generate`函数根据n-gram模型生成了一个包含10个词语的新文本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值