Как узнать итоговый текст данного URL в Python / Django? [закрытый]

Я использую это решение:

preg_match_all( '/<((?!<)(.|\n))*?\>/si',  $content, $new);
var_dump($new);
16
задан Rama Vadakattu 9 March 2009 в 15:41
поделиться

4 ответа

Реферирование текста является довольно сложной темой. Если у Вас есть потребность сделать это серьезным способом, можно хотеть посмотреть на проекты как Лемур ( http://www.lemurproject.org/ ).

Однако, что я подозреваю, Вы действительно хотите, текстовый краткий обзор здесь. Если Вы знаете, какая часть документа содержит основной текст, найдите его пользующийся библиотекой парсинга HTML как BeautifulSoup и затем разделите HTML; возьмите первое предложение или первые символы N (который когда-либо подходит лучше всего), и используйте это. Вид абстрактного генератора бедного родственника:-)

4
ответ дан 30 November 2019 в 21:29
поделиться

Проверьте Инструментарий естественного языка . Это - очень полезная библиотека Python при выполнении какой-либо обработки текста.

Тогда взгляд данная статья HP Luhn (1958). Это описывает наивный, но эффективный метод генерации сводок текста.

Использование nltk.probability. FreqDist возражают для отслеживания, как часто слова появляются в тексте и затем выигрывают предложения согласно тому, сколько из самых частых слов появляется в них. Тогда выберите предложения с лучшими очками и вуаля, у Вас есть сводка документа.

я подозреваю, что NLTK должен иметь средство загружающихся документов от сети и избавляющийся от всех HTML-тэгов. Я не сделал такой вещи сам, но если Вы ищете корпусных читателей, Вы могли бы найти что-то полезным.

4
ответ дан 30 November 2019 в 21:29
поделиться

Ваш лучший выбор в этом случае состоял бы в том, чтобы пользоваться библиотекой парсинга HTML как BeautifulSoup ( http://www.crummy.com/software/BeautifulSoup/ )

Оттуда, можно выбрать, например, все страницы p теги:

urllib2

импорта от страницы BeautifulSoup

импорта BeautifulSoup = urllib2.urlopen (" http://www.bloomberg.com/apps/newspid=20601103&sid=a8p0FQHnw.Yo&refer=us ")

суп = BeautifulSoup (страница)

soup.findAll ('p')

И затем, сделайте некоторый парсинг вокруг. Это зависит полностью на странице, поскольку каждый сайт структурирован по-другому. Можно стать удачливыми на некоторых сайтах, как они могут сделать, и Вы просто ищете p тег с id#summary в нем, в то время как другие (как Blooberg) могли бы потребовать немного большего количества игры вокруг с.

-4
ответ дан 30 November 2019 в 21:29
поделиться

Может быть, в это время параметр null ?

-121--3003400-

Это все равно должно быть возможно с VS2010 путем редактирования файла csproj aka msbuild.

Взято из этого потока на CodePlex.

<ItemGroup>
  <JavaScriptFiles Remove="@(JavaScriptFiles)" />
  <JavaScriptFiles Include="../js/2.js"/>
</ItemGroup>
<CompressorTask
  JavaScriptFiles="@(JavaScriptFiles)"
  ObfuscateJavaScript="True"
  PreserveAllSemicolons="False"
  DisableOptimizations="Nope"
  EncodingType="Default"
  DeleteJavaScriptFiles="false"
  LineBreakPosition="-1"
  JavaScriptOutputFile="../js/2.min.js"
  LoggingType="ALittleBit"
  ThreadCulture="en-au"
  IsEvalIgnored="false"/> 
<ItemGroup>
  <JavaScriptFiles Remove="@(JavaScriptFiles)" />
  <JavaScriptFiles Include="../js/3.js" />
  <JavaScriptFiles Include="../js/4.js" />
</ItemGroup>
<CompressorTask
  CssFiles="@(CssFiles)"
  DeleteCssFiles="false"
  CssOutputFile="../css/release.css"
  CssCompressionType="YuiStockCompression"
  JavaScriptFiles="@(JavaScriptFiles)"
  ObfuscateJavaScript="True"
  PreserveAllSemicolons="False"
  DisableOptimizations="Nope"
  EncodingType="Default"
  DeleteJavaScriptFiles="false"
  LineBreakPosition="-1"
  JavaScriptOutputFile="../js/3.min.js"
  LoggingType="ALittleBit"
  ThreadCulture="en-au"
  IsEvalIgnored="false"/>

-121--5044290-

У меня была такая же потребность, и лемур, хотя он и обладает возможностями суммирования, я обнаружил, что он до точка непригоден для использования. В выходные я использовал nltk для кодирования суммирующего модуля в python: https://github.com/thavelick/summarize

Я взял алгоритм из библиотеки Java Classifier4J здесь: http://classifier4j.sourceforge.net/ , но использовал nltk и python, где это возможно.

Вот основное использование:

>>> import summarize

SimpleSummarizer (в настоящее время единственный сумматор) делает сводку, используя предложения с наиболее частыми словами:

>>> ss = summarize.SimpleSummarizer()
>>> input = "NLTK is a python library for working human-written text. Summarize is a package that uses NLTK to create summaries."
>>> ss.summarize(input, 1)
'NLTK is a python library for working human-written text.'

Вы можете указать любое количество предложений в сводке по своему усмотрению.

>>> input = "NLTK is a python library for working human-written text. Summarize is a package that uses NLTK to create summaries. A Summariser is really cool. I don't think there are any other python summarisers."
>>> ss.summarize(input, 2)
"NLTK is a python library for working human-written text.  I don't think there are any other python summarisers."

В отличие от исходного алгоритма Classifier4J, этот сумматор работает правильно с пунктуацией, отличной от периодов:

>>> input = "NLTK is a python library for working human-written text! Summarize is a package that uses NLTK to create summaries."
>>> ss.summarize(input, 1)
'NLTK is a python library for working human-written text!'

UPDATE

Я выпустил это (наконец!) под лицензией Apache 2,0, той же лицензией, что и nltk, и поместил модуль на гитуб (см. выше). Приветствуются любые материалы или предложения.

22
ответ дан 30 November 2019 в 21:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: