NLTK中常见定义的函数

一、NLTK频率分布类中定义的函数

用法                                                                   含义

fdist = FreqDist(sample)                 创建包含给定样本的频率分布

fdist.inc(sample)                                  增加样本

fdist['monstrous']                                 计数给定样本出现的次数

fdist.freq('monstrous')                          给定样本的频率

fdist.N()                                                样本总数

fdist.keys()                                           以频率递减顺序排列的样本链表

for sample in fdist:                               以频率递减顺序遍历样本

fdist.max()                                           数值最大的样本

fdist.tabulate()                                     绘制频率分布表

fdist.plot()                                            绘制频率分布图

fdist.plot(cumulative=True)                 绘制累积频率分布图

fdist1<fdist2                                        测试样本在fdist1中出现的频率是否小于fdist2


Note:fdist类似于字典 key-value

二、词汇比较相关函数

函数用法                                   含义                                         
s.startswith(t)                     测试s是否以t开头
s.endswith(t)                      测试s时候以t结尾
t in s                                   测试t是否包含于s
s.islower()                          判断s中的字符是否都是小写字母
s.isupper()                         判断s中的字符是否都是大写字母
s.isalpha()                          判断s中的字符是否都是字母
s.isalnum()                         判断s中的字符是否都是字母或数字
s.isdigit()                            判断s中的字符是否都是数字
s.istitle()                             判断s中的字符是否都是首字母大写

Note:函数返回类型都为True or false

三、NLTK中定义的基本语料库函数

函数                                                  描述
fileids()                                      语料库中的文件
fileids([categories])                   语料库中对应分类的文件
categories()                              语料库中的分类
categories([fileids])                   文件对应的语料库中的分类
raw()                                         语料库的原始内容
raw(fileids=[f1,f2,f3])                 指定文件的原始内容
raw(categories=[c1,c2])            指定分类的原始内容
sents()                                      指定分类中的句子
sents(fileids=[f1,f2,f3])              指定文件中的句子
sents(categories=[c1,c2])         指定分类中的句子
abspath(fileid)                           指定文件在磁盘中的位置
encoding(fileid)                         返回文件的编码
open(fileid)                                打开指定语料库文件的文件流
root()                                         到本地安装的语料库根目录的路径
readme()                                   语料库的readme内容

四、NLTK中的条件频率分布相关函数
用法                                                                                        描述
cfdist=ConditionalFreqDist(pairs)                pairs为一个配对链表,以此来创建条件频率分布
cfdist.conditions()                                        将条件按字母排序来分类
cfdist[condition]                                           此条件下的频率分布
cfdist[condition][sample]                             此条件下给定样本的频率
cfdist.tabulate()                                           为条件频率分布制表
cfdist.tabulate(samples,conditions)            在指定样本和条件限制下制表
cfdist.plot()                                                  为条件频率分布绘图
cfdist.plot(samples,conditions)                   在指定样本和条件下绘图
cfdist1 <cfdist2                                           测试样本在cfdist1中出现次数是否小于在cfdist2中出现的次数
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在 Python 提取对方的关键语句,需要先定义关键语句的标准。比如说,你可以定义关键语句为句子的首字母大写,或者包含某些特定的关键字。 一种方法是使用正则表达式来匹配关键语句。你可以使用 Python 的 `re` 模块来使用正则表达式。例如,下面的代码使用正则表达式来查找所有以大写字母开头的句子: ```python import re text = "The quick brown fox jumps over the lazy dog. Hello World!" pattern = r'[A-Z][^.!?]*[.!?]' key_sentences = re.findall(pattern, text) print(key_sentences) # ['The quick brown fox jumps over the lazy dog.', 'Hello World!'] ``` 另一种方法是使用 Python 的 `nltk` 库,该库提供了自然语言处理的功能。你可以使用 `nltk` 库的 `sent_tokenize` 函数来分割文本为句子,然后遍历每个句子并检查是否符合你定义的关键语句的标准。例如,下面的代码使用 `nltk` 库来查找所有以大写字母开头的句子: ```python import nltk text = "The quick brown fox jumps over the lazy dog. Hello World!" key_sentences = [] for sentence in nltk.sent_tokenize(text): if sentence[0].isupper(): key_sentences.append(sentence) print(key_sentences) # ['The quick brown fox jumps over the lazy dog.', 'Hello World!'] ``` 注意,上面两个例子使用的正则表达式和判断条件都是简单的例子,实际情 ### 回答2: 要在Python提取对方的关键语句,可以使用自然语言处理(NLP)技术和相关库。以下是一种可能的方法: 1. 导入所需的库:首先,需要导入一些处理自然语言的库,如`nltk`和`spacy`。这些库可以帮助我们对文本进行分词、标记和解析。 2. 定义文本:将对方的语句存储在一个变量,例如`text`。 3. 分词:使用分词器将文本分解成单独的词语。可以使用`nltk`库的`word_tokenize`函数或`spacy`库的`tokenizer`函数来完成这一步骤。它们将文本拆分成一个词汇列表。 4. 删除停用词:停用词是指在自然语言常见且不具有实际含义的词语,例如"a"、"the"和"is"等。可以使用`nltk`库的`stopwords`模块来获取常见的停用词列表。然后,通过将停用词从分词后的词汇列表移除来完成这一步骤。 5. 提取关键词:将分词后的文本传递给关键词提取器。可以使用`nltk`库的`PorterStemmer`或`spacy`库的`lemmatizer`来提取关键词。这些工具能够去除词汇的后缀,并将它们转换成原始形式,以更好地理解其含义。 6. 评分关键词:根据每个词语在原始文本的出现频率以及在文本的重要性进行评分。可以使用`nltk`库的`FreqDist`函数来实现这一步骤,它将计算每个词语在文本的频率。 7. 选择关键句:根据词语的评分,可以选择具有最高得分的句子作为关键句。可以使用`nltk`库的`sent_tokenize`函数将原始文本分解成句子,然后根据关键词的评分选择重要的句子。 8. 输出结果:将提取出的关键句输出到控制台或保存到文件,以供后续使用。 请注意,以上只是一种可能的方法,可以根据具体需求和数据类型进行调整和优化。自然语言处理是一个复杂且多样化的领域,可能需要更深入的研究和使用其他技术,如语义分析和机器学习,以提高关键语句提取的准确性和效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值