Python 在txt文件中标记单词的出现

Python 在txt文件中标记单词的出现,python,Python,我对这个论坛和Python都是新手,我的一个程序有问题,更具体地说,我可以使用一些帮助来开始我的程序。我想让我的程序做的是查看一个单词在文本中出现的频率,如果一个单词在接下来的30个单词中出现不止一次,我想标记这个单词。例如: 你好,我叫马克,你好,我喜欢马克* 我已成功打开、更改为小写、拆分、读取和打印文本文件等内容,但从这里开始,我遇到了一些问题。我应该在类中使用函数还是有其他方法?如果您能提供编码方面的帮助,我们将不胜感激,提前谢谢您 def open_file(file2, mode):

我对这个论坛和Python都是新手,我的一个程序有问题,更具体地说,我可以使用一些帮助来开始我的程序。我想让我的程序做的是查看一个单词在文本中出现的频率,如果一个单词在接下来的30个单词中出现不止一次,我想标记这个单词。例如:

你好,我叫马克,你好,我喜欢马克*

我已成功打开、更改为小写、拆分、读取和打印文本文件等内容,但从这里开始,我遇到了一些问题。我应该在类中使用函数还是有其他方法?如果您能提供编码方面的帮助,我们将不胜感激,提前谢谢您

def open_file(file2, mode):
"""Checks if file exists, if it does, it opens and reads the textfile."""
try:
    file = open(file2, "r")
    file1 = file.read().lower().replace('.','').replace('\n', '')
    print(file1)
except(IOError) as e:
    print("Could not find the file", file2, "\n")

else:
    split = file1.split(" ")
    return split
主要 Filename=输入文件名:+.txt

open_file(Filename, "r")

您应该拆分行以提取单词,例如拆分,然后将单词放入词典 使用单词作为键,放置计数器作为值,计算发生次数:

dict = {}
...
if my_word in dict:
  dict[my_word] += 1
else:
  dict[my_word] = 1

然后,您必须突出显示在词汇表中数量较高的词,您可以在前后添加这些词,如果您将文件读为html,则会使用斜体。

假设您已经阅读了文件并对其进行了标记,删除了标点符号并将其拆分为单词,并将单词标准化为小写,可能还删除了变音符号。假设这些令牌包含在一个名为令牌的列表中

现在,为了确定过去30个令牌中是否已经出现了相同的令牌,可以使用滑动窗口

window = []
for token in tokens:
    if token in window:
        print('repeated token {}'.format(token))
        #process accordingly
    window.append(token)
    window = window[-30:] #trim to last 30 entries
让我们进一步说,你想把^放在重复的单词周围:

window = []
for token in tokens:
    if token in window:
        print('^{}^ '.format(token))
    else:
        print('{} '.format(token))
    window.append(token)
    window = window[-30:] #trim to last 30 entries
然后将你的stdout导入到某个文件中

或者列出一个新的列表:

window = []
tokens2 = []
for token in tokens:
    if token in window:
        tokens2.append('^{}^'.format(token))
    else:
        tokens2.append(token)
    window.append(token)
    window = window[-30:] #trim to last 30 entries
print(tokens2)

我继续,避开了Hello和Mark上的星号,这样它们就不会被解释为格式化标记。这是您想要的准确表示吗?请提供您迄今为止编写的代码。我添加了迄今为止的代码,正如我所说,我还没有到目前为止,可以提供一些有关计数机制的提示我很抱歉打扰您,但我对python非常陌生。你说可以在前后添加是什么意思?如果你想突出显示单词,你可以创建一个输出文件:output\u file=openoutput.html,然后在其中写入单词:If dict[my\u word]>5:output.write%s%my\u word else:output.writemy\u wordOkey,看起来很有希望!我将您的代码应用到程序中,这是我得到的瑞典文本文件:['hejsan']重复标记hejsan['hejsan','hejsan']['hejsan','hejsan','namn']['hejsan','hejsan','namn','hejsan','namn','namn','namnär','parveln']['hejsan','hejsan','namnär','parveln','och']重复标记namn我的下一个问题是,我如何标记这些单词,例如,单词hejsan出现2次,我想标记在接下来的30个单词中出现1次以上的单词,比如^hejsan^@user3376110为什么要破坏这个答案?