0

まず、risky riskier riskless [risk] (risk) risk などのリスク関連の単語を置き換える必要があります。危険!risk* を risk に変換し、risk のみをカウントして返します。

その際、いくつかの条件があります。「risk-」や、アスタリスクのような構成要素としてリスクを伴う単語はカウントしないでください。

たとえば、長いドキュメントには、リスクに関連する単語が非常に多く含まれる場合があります。説明を簡単にするために、

#

私はリスクを取るのが好きです。私は危険な道を選びたくない。

無リスク金利はいくらですか?

アスタリスクとは?【リスク】リスクです。

#

上記のドキュメントから、 1) リスクとリスクの高いものをリスクに置き換える必要があります。(他の言葉もあるかもしれないので、危険に固執しないでください). 2) [リスク] リスクを含むリスクのみをカウントする。しかし、リスクとアスタリスクではありません。

この例は非常に単純化されています。繰り返しになりますが、「リスク」、リスキーでリスクのないリスクのリスクのような単語、([{、.*!? などで先行または終了する「リスク」などの「リスク」は、リスクに置き換えた後にカウントする必要があります。構成要素としてリスクを含むものはカウントすべきではありません。

ありがとう。

市場リスク リスク [リスク

4

1 に答える 1

0

正規表現をどのように構成するかが問題です。REは苦手です。ただし、次の例は次のように機能します。

>>> 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)

上記に基づいて、ロジックを次のように実現できます。

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)
于 2012-09-01T01:19:39.450 に答える