Насколько я могу судить, ваш синтаксис верен. Однако директива php_value
Apache предоставляется модулем mod_php
. Если вы не запускаете PHP как модуль Apache (например, он работает как FastCGI или какой-либо другой SAPI), эта директива не будет определена, поэтому ошибка 500.
Существует много способов изменить настройки PHP . На практике я обнаружил, что службы хостинга, которые запускают CGI, часто предоставляют пользовательский файл php.ini
где-то в вашей учетной записи FTP. Кроме того, если вы запустите PHP / 5.3.0 или новее, вы можете использовать .user.ini
файлы . И последнее, но не менее важное: в коде есть ini_set()
.
Вы могли попытаться использовать модуль жемчуга Язык:: EN:: Теггер для быстрого и легкого решения.
А более сложный модуль Язык:: EN:: Semtags:: Механизм Язык использования:: EN:: Теггер с базой данных WordNet для получения более структурированного вывода. Оба довольно просты в использовании, просто проверяют документацию относительно CPAN или используют perldoc после установки модуля.
Название "высокочастотных английских слов" стоп-слова и существует много доступных списков. Я не знаю ни о каком Python или библиотеках жемчуга, но Вы могли закодировать свой список стоп-слова в двоичном дереве или хеше (или Вы могли использовать frozenset Python), затем поскольку Вы читаете каждое слово из входного текста, проверьте, находится ли это в Вашем 'стоп-листе', и фильтруйте его.
Примечание, что после удаления стоп-слов необходимо будет сделать приблизительно стемминг для нормализации получающегося текста (удаляют множественные числа, - ings, - редакторы), затем удалите все дублирующиеся "ключевые слова".
Самый простой способ сделать, что Вы хотите, является этим...
>>> text = "this is some of the sample text" >>> words = [word for word in set(text.split(" ")) if len(word) > 3] >>> words ['this', 'some', 'sample', 'text']
я не знаю ни о каком стандартном модуле, который делает это, но не было бы трудно заменить предел на трехбуквенные слова с поиском в ряд общих английских слов.
Одно решение для лайнера (слова дольше, чем два символа, которые произошли больше чем два раза):
perl -ne'$h{$1}++while m/\b(\w{3,})\b/g}{printf"%-20s %5d\n",$_,$h{$_}for sort{$h{$b}<=>$h{$a}}grep{$h{$_}>2}keys%h'
Править: Если Вы хотите отсортировать в алфавитном порядке слова с той же частотой, может использовать этот расширенный:
perl -ne'$h{$1}++while m/\b(\w{3,})\b/g}{printf"%-20s %5d\n",$_,$h{$_}for sort{$h{$b}<=>$h{$a}or$a cmp$b}grep{$h{$_}>2}keys%h'
Для нахождения наиболее часто используемых слов в тексте сделайте что-то вроде этого:
#!/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
Я думаю самый точный путь, который все еще поддерживает подобие простоты, должен был бы считать частотность слова в Вашем источнике, затем взвесить их согласно их частотам на общем английском языке (или безотносительно другого языка) использование.
Слова, которые кажутся менее часто широко использующимися, как "кафе", более вероятно, будут ключевым словом, чем слова, которые появляются чаще, как "собака". Однако, если Ваш источник упоминает "собаку" 500 раз и "кафе" дважды, более вероятно, что "собака" является ключевым словом даже при том, что это - общее слово.
Выбор схемы взвешивания был бы трудной частью.