我有一些twitter的数据,我把文本分成了快乐的表情和悲伤的表情,很优雅,很像:
happy_set = [":)",":-)","=)",":D",":-D","=D"]
sad_set = [":(",":-(","=("]
happy = [tweet.split() for tweet in data for face in happy_set if face in tweet]
sad = [tweet.split() for tweet in data for face in sad_set if face in tweet]
然而,这是可行的,在一条tweet中可以找到来自happy_set
和sad_set
的表情符号。什么是pythonic方法来确保happy
列表只包含来自happy_set
的表情符号,反之亦然?你知道吗
您可以尝试使用集合,特别是
set.isdisjoint
。检查happy tweet中的令牌集是否与sad_set
不相交。如果是这样,它肯定属于happy
:我会使用lambdas:
这将避免创建
data
的中间副本。你知道吗如果
data
真的很大,你可以用包itertools
中的ifilter
替换filter
,得到迭代器而不是列表。你知道吗是你要找的吗?你知道吗
对于} 来实现性能可能更好。是加法,集合已经提供了basic sets operations(并集、交集等)
happy...
和sad...
,我坚持使用列表解决方案,因为项目的顺序可能是相关的。如果不是,那么使用^{相关问题 更多 >
编程相关推荐