【发布时间】:2016-11-02 11:00:35
【问题描述】:
我创建了一个程序来解析一些文本文件并计算单词的数量,然后将它们降序排序。这很好用,但我想更上一层楼。
我希望能够找出文本中重复的任何单词短语,但我不知道该怎么做。
我目前的算法是首先将文本拆分成单词,然后用单词创建一个哈希表并像这个值一样计数:key
hash:
"word":3,
"test":12,
.....
然后我只是根据键和输出对 has 进行排序,然后我就完成了。
假设我有一首生日快乐歌:
Happy Birthday to You
Happy Birthday to You
Happy Birthday Dear (name)
Happy Birthday to You.
From good friends and true,
From old friends and new,
May good luck go with you,
And happiness too.
Alternative ending:
How old are you?
How old are you?
How old, How old
How old are you?
我可以很好地计算字数,但如果我想匹配所有短语怎么办?
比如这个6词短语可以说匹配两次:
happy birthday to you happy birthday
一对 5 词短语匹配:
birthday to you happy birthday
happy birthday to you happy
一些 4 词短语匹配
how old are you
happy birthday to you
to you happy birthday
how old how old
birthday to you happy
以此类推,直到匹配的两个单词短语。
我更关心匹配整个短语,甚至跨行,因为无论如何我都必须查看输出以进行进一步处理。
什么类型的算法可以让我实现这个目标?
【问题讨论】: