首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何替换单词、统计单词、保存计数

如何替换单词、统计单词、保存计数
EN

Stack Overflow用户
提问于 2012-09-01 08:24:54
回答 1查看 152关注 0票数 0

我首先需要替换与风险相关的词,如risk riskier riskless risk risk。冒险!risk*转化为risk,只计算risk并返回它。

当这样做的时候,有一些条件。我不应该把“risk -”和任何有risk的单词算作星号。

例如,在一个很长的文档中,可能会有很多与风险相关的单词。为了简化解释,

我喜欢冒险。我不喜欢走风险更大的路。

无风险利率是多少?

什么是星号?风险就是风险。

从上面的文档中,1)需要将风险和更高的风险替换为风险。(也可能有其他词,所以不要坚持使用风险更高的词)。2)只统计包含风险风险的风险。但不是风险和星号。

这个例子非常简单。同样,“risk”,是否有诸如riskless riskness riskier、任何“risk”内部的“risk”([{,任何以.*开头或结尾的“risk”!?等等。应在将其替换为风险后计入。任何包含风险的词都不应该被计算在内。此外,风险-不应该被计算在内。

谢谢。

市场风险风险[风险

EN

回答 1

Stack Overflow用户

发布于 2012-09-01 09:19:39

这实际上是一个如何组合正则表达式的问题。我不太擅长体育。但以下内容适用于您的示例:

代码语言:javascript
复制
>>> import re
>>> a= '''I like to take risk. I don't like to take a riskier route.
How much is the risk-free interest rate?
What is asterisk? [risk] is risk. '''
>>> pattern=r'\brisk[^\-]?\w*\b'
>>> re.subn(pattern,'risk',astr)
("\nI like to take risk. I don't like to take a risk route.\nHow much is the risk-free interest rate?\nWhat is asterisk? [risk] is risk.\n" , 5)

基于以上内容,您可以将您的逻辑实现为:

代码语言:javascript
复制
counts=0
with open(myfile, 'r') as f:
    with open(my_new_file, 'a') as fo:
        for line in f:
            newline, lcount= re.subn(pattern,'risk',line)
            counts+=lcount
            fo.write(newline)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12223937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档