当前位置:  开发笔记 > 编程语言 > 正文

从文本生成关键字的简单方法是什么?

如何解决《从文本生成关键字的简单方法是什么?》经验,为你挑选了3个好方法。

我想我可以拿一个文本并从中删除高频英语单词.通过关键字,我的意思是我想提取最能代表文本(标签)内容的单词.它不一定是完美的,一个很好的近似是完美的满足我的需求.

有人做过这样的事吗?你知道Perl或Python库吗?

Lingua :: EN :: Tagger正是我所要求的,但我需要一个可以用于法语文本的库.



1> florin..:

"高频英语单词"的名称是停用词,有许多列表可用.我不知道任何python或perl库,但你可以在二叉树或散列中编码你的停用词列表(或者你可以使用python的冷冻集),然后当你从输入文本中读取每个单词时,检查它是否是在你的"停止列表"中过滤掉它.

请注意,在删除停用词后,您需要执行一些词干来规范化生成的文本(删除复数,-ings,-eds),然后删除所有重复的"关键字".



2> andymurd..:

您可以尝试使用perl模块Lingua :: EN :: Tagger,以获得快速简便的解决方案.

一个更复杂的模块Lingua :: EN :: Semtags :: Engine使用Lingua :: EN :: Tagger和WordNet数据库来获得更结构化的输出.两者都非常易于使用,只需查看CPAN上的文档或在安装模块后使用perldoc.



3> JDrago..:

要查找文本中最常用的单词,请执行以下操作:

#!/usr/bin/perl -w

use strict;
use warnings 'all';

# Read the text:
open my $ifh, '<', 'text.txt'
  or die "Cannot open file: $!";
local $/;
my $text = <$ifh>;

# Find all the words, and count how many times they appear:
my %words = ( );
map { $words{$_}++ }
  grep { length > 1 && $_ =~ m/^[\@a-z-']+$/i }
    map { s/[",\.]//g; $_ }
      split /\s/, $text;

print "Words, sorted by frequency:\n";
my (@data_line);
format FMT = 
@<<<<<<<<<<<<<<<<<<<<<<...     @########
@data_line
.
local $~ = 'FMT';

# Sort them by frequency:
map { @data_line = ($_, $words{$_}); write(); }
  sort { $words{$b} <=> $words{$a} }
    grep { $words{$_} > 2 }
      keys(%words);

示例输出如下所示:

john@ubuntu-pc1:~/Desktop$ perl frequency.pl 
Words, sorted by frequency:
for                                   32
Jan                                   27
am                                    26
of                                    21
your                                  21
to                                    18
in                                    17
the                                   17
Get                                   13
you                                   13
OTRS                                  11
today                                 11
PSM                                   10
Card                                  10
me                                     9
on                                     9
and                                    9
Offline                                9
with                                   9
Invited                                9
Black                                  8
get                                    8
Web                                    7
Starred                                7
All                                    7
View                                   7
Obama                                  7

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有