如何获取字符串python的连续单词数

我正在尝试制作一个Python脚本,该脚本接受一个字符串并给出连续单词的计数。比方说:

string = " i have no idea how to write this script. i have an idea."

output = 
['i', 'have'] 2
['have', 'no'] 1
['no', 'idea'] 1
['idea', 'how'] 1
['how', 'to'] 1
['to', 'write'] 1
...

我正在尝试使用python而不导入集合,集合中的计数器。我所拥有的如下。我正在尝试使用are.findall(#whatpatterndoiuse, string)来遍历字符串并进行比较,但是我很难弄清楚该如何做。

string2 = re.split('\s+', string. lower())
freq_dict = {} #empty dictionary
for word in word_list:
    word = punctuation.sub("", word)
    freq_dic[word] = freq_dic.get(word,0) + 1

freq_list = freq_dic.items()
freq_list.sort()
for word, freq in freq_list:
    print word, freq

使用我不想要的集合中的计数器。它还会产生一种与我上面所说的格式不同的输出。

import re
from collections import Counter
words = re.findall('\w+', open('a.txt').read())
print(Counter(zip(words,words[1:])))
尼克曼

不使用zip来解决这个问题非常简单。只需为每对单词构建元组,并在字典中跟踪其数量。仅需注意几种特殊情况-输入字符串只有一个单词时,以及您位于字符串末尾时。

试一下:

def freq(input_string):
    freq = {}
    words = input_string.split()
    if len(words) == 1:
        return freq

    for idx, word in enumerate(words):
        if idx+1 < len(words):
            word_pair = (word, words[idx+1])
            if word_pair in freq:
                freq[word_pair] += 1
            else:
                freq[word_pair] = 1

    return freq

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何拆分字符串以获取字符串中的最后一个单词或两个单词,但不知道字符数或结尾词数?

如何在Python中获取字符串的所有连续子字符串?

如何获取字符串的选定单词?

如何获取字符串中每个单词的长度

如何使用python获取字符串中的第一个单词

PHP搜索字符串以获取单词数组

如何在Swift 4中获取包含确切句子/单词数量的字符串?

如何计算DataFrame中字符串中的单词数?

如何计算文本(字符串)中的单词数?

如何计算以字符串开头的单词数

如何计算 HTML 字符串中的单词数?

如何获取字符串中字符的索引(Python)

计算字符串中的单词数

如何在Python中获取字符串的大小?

如何获取字符串的前n个字符,但以整个单词结尾

如何从 .getId() 获取字符串

如何动态获取字符串

使用空格获取字符串前后的单词

获取字符串的最后一个单词

从Rebol中的单词获取字符串

获取字符串 Javascript 中的单词

在 dart 中获取字符串的前几个单词

获取字符串中包含 % 的完整单词

如何使用地图获取字符串中第二多重复的单词

斯卡拉(Scala)。如何获取字符串中的最后一个单词

如何使用R大写的特定单词后获取字符串的内容?

如何在特定单词之前获取字符串

如何获取字符串中的前两个单词 Flutter

如何获取字符串,以及字符串在R(TextMining)中的数据框中计算整个单词