Я тоже, глядя на тип ключевого слова механизма подсчета, как была размещена здесь Word Frequency Counter in XSLT:Ключевые слова в XSLT
Мой морщин является то, что мои ключевые слова могут иметь несколько слов, например:
<xsl:variable name="stopwords"
select="('audio codec', 'dual audio', 'audio switch')"/>
I играл с кодом из выше вопрос, а что-то вроде этого:
<xsl:stylesheet
version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:variable name="stopwords"
select="('audio codec', 'dual audio', 'audio switch')"/>
<wordcount>
<xsl:for-each-group group-by="." select="
for $w in //text()/tokenize(., '\W+')[not(.=$stopwords)] return $w">
<word word="{current-grouping-key()}" frequency="{count(current-group())}"/>
</xsl:for-each-group>
</wordcount>
</xsl:template>
Конечно, токенизация с помощью «\ W +» разбивает это на слова, но тогда это не будет соответствовать моим секундомерам, поскольку они есть и могут быть несколькими словами.
Может ли кто-нибудь предложить элегантный способ подсчета слов, когда ключевые слова могут иметь несколько разворотов?
Спасибо за любую помощь в этом!
Russ
Стоп-фразы несовместимы со счетными словами. Вы начнете считать фразы вместо слов? Затем рассмотрим «w1 w2 w3». Вы хотите считать (w1, w2, w3) или (w1 w2, w2 w3) или (w1 w2 w3) или объединение всех этих множеств? – kjhughes
Если вы все еще будете считать слова, а не фразы, но хотите, чтобы ваши фразы остановки не влияли на подсчеты, возможно, это соответствовало бы вашим требованиям, чтобы удалить фразы остановки до выполнения подсчета. – kjhughes
SOrry за то, что вводит в заблуждение. Мои стоп-слова на самом деле являются фразами, которые я хотел рассчитать. Я мог бы думать о способах прокрутки, проверяя каждую фразу, но надеялся, что существует аналогичный элегантный способ подсчета фраз, как этот пример, для отдельных слов. –