Python:自然语言处理(NLP)

时间:2019-07-14 22:11:17

标签: python pandas

我在HiveQL数据库中有十亿个字符串。我正在将它们加载到Python中。字符串不是用空格分隔的,看起来像:

"mynameisanon"
...
"helloworld"

我想计算每个字符串中的单词数。但是首先,我需要一本字典。我不知道如何获得单词词典,但是假设我有以下词典:

{ hello, world, my, name, is}

然后该函数将像:

Input:  mynameisanon
Output: 3

Input:  helloworld
Output: 2

最后,我想要一张熊猫桌。

1 个答案:

答案 0 :(得分:0)

正如我在评论中提到的那样,在通常情况下,不能唯一地做到这一点,而是假设有一个字典可以解决这个问题:

(未经特别测试):

strings = ["mynameisanon", "helloworld"]

words = ["hello", "world", "my", "name", "is"]

for string in strings:
    count = 0
    max_interval = len(string)
    for interval_length in range(1,max_interval+1):
        for interval_start in range(0, len(string)+1-interval_length):
            interval = string[interval_start:(interval_start+interval_length)]
            if interval in words:
                count += 1
    print(string)
    print(count)

这假定单词可以小到一个字母,也可以长到整个字符串,并检查这些值之间所有长度的单词