有哪些技术/工具可以发现文本块中的常用短语?

Joh*_*esH 6 .net data-mining

假设我有100000个电子邮件正文,其中2000个包含一个像"快速的棕色狐狸跳过懒狗"或"lorem ipsum dolor sit amet"这样的公共字符串.我可以/应该使用哪些技术来"挖掘"这些短语?我对挖掘单个单词或短语并不感兴趣.此外,我需要过滤掉我已经知道在所有邮件中出现的短语.

例:

string mailbody1 = "Welcome to the world of tomorrow! This is the first mail body. Lorem ipsum dolor sit AMET. Have a nice day dude. Cya!";
string mailbody2 = "Welcome to the world of yesterday! Lorem ipsum dolor sit amet Please note this is the body of the second mail. Have a nice day.";
string mailbody3 = "A completely different body.";
string[] mailbodies = new[] {mailbody1, mailbody2, mailbody3};
string[] ignoredPhrases = new[] {"Welcome to the world of"};

string[] results = DiscoverPhrases(mailbodies, ignoredPhrases);
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我希望DiscoverPhrases函数返回"lorem ipsum dolor sit amet"和"祝你有个美好的一天".如果函数还返回较短的"噪声"短语并不重要,但如果可能的话,在此过程中消除这些短语会很好.

编辑:我忘了在示例中包含mailbody3.

Nor*_*sey 6

看看N -gram.最常见的短语必然会贡献最常见的N- gram.我从单词三元组开始,看看它在哪里引导.(所需空间是文本长度的N倍,因此你不能让N变得太大.)如果你保存位置而不仅仅是计数,你可以看看是否可以扩展三元组以形成常用短语.