【にゃーん】社会性フィルターをPython3で実装する

  • 45
    いいね
  • 0
    コメント

元ネタ

Pythonで実装する

Python3:

# -*- coding: utf-8 -*-

def social_filter(input):
    '''社会性フィルタ
    '''
    return list( map(lambda x: 'にゃーん', input) )

if __name__ == '__main__':
    tweets = ['死ね', '疲れた', 'なんであいつのために俺が苦労しないといけないんだ']

    print(tweets)
    print(social_filter(tweets))

実行結果:

$ python3.5 nyan.py 
['死ね', '疲れた', 'なんであいつのために俺が苦労しないといけないんだ']
['にゃーん', 'にゃーん', 'にゃーん']

一定の確率で本音が漏れる

Python3:

# -*- coding: utf-8 -*-
from numpy.random import *

def social_filter(input):
    '''社会性フィルタ
    '''
    return list( map(lambda x: rand_nyan(x), input) )


def rand_nyan(str):
    '''一定の確率で本音が漏れる
    '''
    if rand() < 0.3:
        return str
    return 'にゃーん'


if __name__ == '__main__':
    tweets = ['死ね', '疲れた', 'なんであいつのために俺が苦労しないといけないんだ']

    print(tweets)
    print(social_filter(tweets))

実行結果:

$ python3.5 nyan.py 
['死ね', '疲れた', 'なんであいつのために俺が苦労しないといけないんだ']
['にゃーん', '疲れた', 'にゃーん']

ひとこと

思いつきです。

以下ポエム

本来フィルタというからには、条件に一致するものにだけ作用が及ぶべきです。
この場合の条件として、社会性に問題のある文章というのが条件になるでしょう。
しかし「社会性に問題のある」というのは、定義が明確ではありません。
(そもそも社会性の定義が必要です。)

そこで明確で実装可能な条件を考えます。
試しに「社会性に問題のある」文章は、「怒り」や「嫌悪」の感情を含む文章だと仮定します。
そうすると社会性フィルタの条件は、様々な感情を表現した文章を感情分析して、
「怒り」や「嫌悪」の感情を含むかどうかを条件にすれば良さそうです。

例えば、酔った勢いで日頃の鬱憤を書きなぐってしまった時に、「にゃーん」と変換されて投稿される、といった使い方が考えられます。

だれか実装してください。