php tag云,php根据词频生成tag云

给定一段文本,此代码分析文本的词频分布,生成tag云

/**

* Tag cloud demo based on word frequency

* @author: unknown

* @since: 2007-02-27

*/

// Store frequency of words in an array

$freqData = array();

// Random words

$lorem = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

Phasellus vestibulum ullamcorper tortor. Aenean quis lacus quis neque

adipiscing ultricies. Pellentesque tincidunt ligula vitae nibh ornare

pharetra. Proin dignissim tortor. Donec et ipsum nec tellus gravida

tempor. Aliquam ullamcorper purus vel felis. Praesent faucibus.

Curabitur porta. Nulla in lorem quis mi lacinia fringilla. Integer

adipiscing mi quis felis. Pellentesque habitant morbi tristique senectus

et netus et malesuada fames ac turpis egestas. Quisque sagittis ante in

arcu. Sed libero enim, venenatis sit amet, vestibulum at, porttitor id,

neque. Vestibulum ornare semper erat. Sed tincidunt nibh et massa. Cras

sed diam. Quisque blandit enim.

Sed nonummy. Aenean mollis turpis quis enim. Nam massa nulla, varius

molestie, aliquet et, feugiat eget, nisi. Sed mollis, leo ut pretium

placerat, nibh turpis egestas ipsum, sed aliquam neque enim in risus.

Nullam nisl. Sed tincidunt leo quis tellus. Mauris non lorem. Aenean

tristique justo at arcu. Fusce et lorem. Nam sodales. Mauris condimentum

diam. Nam commodo. Cum sociis natoque penatibus et magnis dis parturient

montes, nascetur ridiculus mus. Cras ac risus. Proin et dolor laoreet mi

gravida sodales. Duis bibendum, ipsum posuere egestas posuere, dui lacus

feugiat turpis, id tincidunt urna est sit amet est. Cras eu sem.

";

// Get individual words and build a frequency table

foreach( str_word_count( $lorem, 1 ) as $word )

{

// For each word found in the frequency table, increment its value by one

array_key_exists( $word, $freqData ) ? $freqData[ $word ]++ : $freqData[ $word ] = 0;

}

// ==============================================================

// = Function to actually generate the cloud from provided data =

// ==============================================================

function getCloud( $data = array(), $minFontSize = 12, $maxFontSize = 30 )

{

$minimumCount = min( array_values( $data ) );

$maximumCount = max( array_values( $data ) );

$spread = $maximumCount - $minimumCount;

$cloudHTML = '';

$cloudTags = array();

$spread == 0 && $spread = 1;

foreach( $data as $tag => $count )

{

$size = $minFontSize + ( $count - $minimumCount )

* ( $maxFontSize - $minFontSize ) / $spread;

$cloudTags[] = ''

. htmlspecialchars( stripslashes( $tag ) ) . '';

}

return join( "\n", $cloudTags ) . "\n";

}

?>

/p>

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Tag Cloud Demo

/*

.tag_cloud { padding: 3px; text-decoration: none; }

.tag_cloud:link { color: #81d601; }

.tag_cloud:visited { color: #019c05; }

.tag_cloud:hover { color: #ffffff; background: #69da03; }

.tag_cloud:active { color: #ffffff; background: #ACFC65; }

/*]]>*/

Sample Tag Cloud

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
生成模型的Python代码主要分为以下几个步骤: 1. 收集数据集:首先需要准备一个数据集,可以是一些文本数据或者图片数据等,数据集的质量决定了生成模型的质量。 2. 数据预处理:将数据集进行预处理,例如去除停用词、分词、词性标注等操作。 3. 构建词频矩阵:将预处理后的数据集转化为词频矩阵,每个文档都是一个向量,向量的长度是词汇表的大小。 4. 计算TF-IDF值:计算每个单词的TF-IDF值,用于衡量单词的重要程度。 5. 计算相似度矩阵:根据词频矩阵和TF-IDF值,计算文档之间的相似度,生成相似度矩阵。 6. 应用聚类算法:根据相似度矩阵,应用聚类算法对文档进行分组,生成模型。 以下是一个简单的Python代码示例,用于生成模型: ```python import numpy as np from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.cluster import KMeans from wordcloud import WordCloud # 读取数据集 with open("data.txt", "r") as f: data = f.readlines() # 构建词频矩阵 vectorizer = TfidfVectorizer() X = vectorizer.fit_transform(data) # 计算相似度矩阵 similarity_matrix = (X * X.T).A # 应用聚类算法 kmeans = KMeans(n_clusters=3) kmeans.fit(X) clusters = kmeans.labels_.tolist() # 生成模型 cloud_text = "" for i in range(len(clusters)): if clusters[i] == 0: cloud_text += " " + data[i] wordcloud = WordCloud(width = 800, height = 800, background_color ='white', stopwords = stopwords, min_font_size = 10).generate(cloud_text) # 展示模型 import matplotlib.pyplot as plt plt.figure(figsize = (8, 8), facecolor = None) plt.imshow(wordcloud) plt.axis("off") plt.tight_layout(pad = 0) plt.show() ``` 在这个示例中,我们首先读取一个文本文件,然后使用TfidfVectorizer将文本转化为词频矩阵,计算相似度矩阵,并应用KMeans聚类算法将文本分成3个组。最后,我们将每个组的文本合并起来,生成模型并展示出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值