肃宁县,隶属于河北省沧州市,位于河北省中部,沧州市最西端,总面积515平方公里,总人口344728人(2011年),1下辖6个镇、3个乡,6个社区、253个村。肃宁县历史悠久,原始社会已有先民在此繁衍生息,春秋时期燕国置武垣县,隋朝改为河间县,金代置肃宁县。有钩弋夫人、刘完素、魏忠贤、刘春霖、“画眉张”等著名人物,文物古迹有武垣城遗址、烈士塔等。
2肃宁县地处海河冲积平原,主要种植小麦、玉米等农作物,是国家级商品粮基地,是河北省核心区产粮大县之一;
3工业以毛皮加工、针纺服装、食品加工、图书印刷发行为主导产业,42013年完成地区生产总值130.0978亿元。
5京九铁路、朔黄铁路在肃宁境内交叉而过,肃宁北站是西煤东运的重要铁路枢纽。肃宁县先后获得省级园林县城、国家级平安县、“中国裘皮之都”等荣誉称号。
1、肃宁裘皮
2、肃宁西红柿
3、肃宁鸭梨
4、肃宁野猪
5、西红柿
6、肃宁窝北香肠
7、万里镇蔬菜
8、大红梨
9、肃宁韭菜
10、沧州冬枣
11、肃宁县无公害水果
12、杏梅
13、鲜桃
在当今数字化时代,网页设计已经成为企业吸引客户、增加销售额的重要工具之一。肃宁县作为一个日渐繁荣的地区,网页设计在当地企业中扮演着至关重要的角色。本文将探讨肃宁县网页设计的现状、趋势以及如何选择合适的网页设计公司。
目前,肃宁县的许多企业已意识到了网页设计的重要性,开始积极寻求优质的网页设计服务。一些知名企业已经通过精心设计的网站吸引了大量的客户,提升了品牌形象和销售额。
然而,也有一些企业在网页设计方面存在不足,网站界面过时、不易访问、加载速度慢等问题影响了用户体验,进而影响了企业形象和市场竞争力。
随着移动互联网的快速发展,响应式网页设计已成为一个不可或缺的趋势。肃宁县的网页设计公司也开始注重设计兼容各种设备的网站,以提供更好的用户体验。
另外,随着人工智能和大数据技术的应用,个性化定制的网页设计将成为未来的发展趋势。企业需要根据用户的偏好和行为习惯,设计出更具吸引力和互动性的网站,从而提升用户留存率和转化率。
在选择肃宁县的网页设计公司时,企业需要考虑以下几个关键因素:
综上所述,肃宁县的网页设计行业正面临着巨大的发展机遇和挑战。只有不断学习和创新,才能立于市场竞争之中,为企业提供更优质的网页设计服务。
通常肃宁县农村电价与全国广大农村电价基本相同,也就是农村的农业用电电最低约为0、4元左右/每度,而农村民用电价约为0、5元左右/每度等。
肃宁县位于河北省,拥有丰富的自然资源和独特的文化底蕴。其中,老味海鲜烧烤成为该地的一张名片,吸引了许多游客前来品尝。
老味海鲜烧烤不仅以新鲜的海鲜为特色,还有独特的烧烤方式和独特的调味方法。在这里,游客们可以尝到最地道的海鲜美食,感受到烧烤文化的魅力。
老味海鲜烧烤以其新鲜的食材而闻名,这里的海鲜全都是当天新捕捞的,保证了食材的新鲜和口感的绝佳。无论是鱼、虾、蟹,还是贝类,都能在这里找到最好的品质。
不同于传统的烧烤,老味海鲜烧烤使用特制的烧烤炉,通过间接火源的方式将海鲜烤至完美。这种烧烤方式可以最大程度地保留海鲜的鲜嫩和汁水,使得每一口都散发着鲜美的香气。
老味海鲜烧烤的烧烤方式颇具独特之处。他们将海鲜放置在特制的烤盘上,再加上适量的调味料,轻轻翻烤,直至入味。
独特的调味料是老味海鲜烧烤的秘密。根据不同的海鲜种类,他们会选用不同的调味料来提升海鲜本身的鲜美。而这些调味料都是由他们精心配制而成,绝不重复。
除了美食的诱惑,老味海鲜烧烤还能让人感受到烧烤文化的魅力。
这里的烤鱼、烤虾是当地人最喜欢的烧烤食品之一。周末的时候,不论是老人还是年轻人都会来这里享受美食,感受到烧烤带来的快乐。
此外,老味海鲜烧烤还提供了现场烤制的服务。游客们可以亲自动手参与到烤制过程中,体验到独特的烧烤乐趣。
肃宁县老味海鲜烧烤是一个独特的美食品牌,以其新鲜的海鲜、独特的烧烤方式和独特的调味方法,吸引了众多游客前来品尝。
如果你对美食有着执着的追求,肃宁县老味海鲜烧烤绝对不容错过。来到这里,你将会品尝到最地道的海鲜美食,感受到烧烤文化的魅力。
来一趟肃宁县老味海鲜烧烤之旅,让你的味蕾得到绝对的满足!
1、白蒜
白蒜,是甘肃省宁县的特产,是中国国家地理标志产品。
2、蒜泥
蒜泥是宁县一道特色小吃,主要原料为大蒜,蒜泥有很高的营养价值,含有丰富的维生素。
3、盐蛋
关于盐蛋的由来,有两种说法:一种说法是,西汉年间汉武帝派使臣从西域引入盐,因食盐供应不上而导致盐荒。武帝用重金从购买了盐,但盐运到咸阳后却发生了盐荒。大臣们都很着急!汉武帝知道盐荒是匈奴侵略汉朝的借口,便派使臣去匈奴请求支援。匈奴却将使者打死了,使者的尸体也被匈奴人挖走了。汉武帝大怒,下令对使臣进行严惩就是为了防止“盐荒”现象再次发生。
4、宁县红富士苹果
宁县红富士苹果是甘肃省宁县的特产。宁县红富士苹果,果面光滑洁净,色泽艳丽,果汁多,香气浓郁。果型端正美观,果肉白色细腻,肉质细脆易削皮。果核极小。汁多味甜、微酸、芳香。营养丰富、富含多种维生素及微量元素,尤其是苹果酸的含量为梨的2倍左右,有“天然维生素丸”的美称。
5、小碗面
宁县小碗面,是一种面食。因其独特的吃法,让人回味无穷;又因其简单方便,被很多市民所喜爱。每逢节假日,去县城买上几碗小碗面带回家,和家人一起分享这难得的美味。
甘肃宁县不产茶。
宁县隶属于甘肃省庆阳市,位于甘肃省东部,总土地面积2653.17平方公里,常住人口336316人。
宁县有十大特产:庆阳白瓜子 、宁县九龙金枣、宁县曹杏、宁县早胜牛、宁县牛肉丸子、宁县猪灌肠、宁县黄花菜、宁县大枣、宁县凉皮、绿梨瓜。
感觉这几家还不错,价格建议去旅游网站查查对比一下。
华阳大酒店
泽城东路
金恩大酒店
新世纪广场南侧
华源宾馆
纬南路...
肃宁县是河北省的一个县级市,位于中国北方平原上,拥有丰富的农田资源和独特的地理环境,这里的特色美食吸引着众多游客和美食爱好者。
肃宁水盆羊肉是肃宁县的传统名菜之一。它选用当地优质的山羊肉,配以新鲜的蔬菜和调料,经过精心的烹饪而成。这道菜品独特的做法是先将山羊肉在温水中浸泡,去除膻味,然后再进行炖煮。炖制出的羊肉鲜嫩多汁,入口即化。它的汤底醇厚,配以丰富的配料,口感丰富。肃宁水盆羊肉以其独特的口味和营养价值备受人们喜爱。
驴肉火烧是肃宁县的又一知名美食。它选用新鲜的驴肉为主要食材,搭配上海面粉制作而成。驴肉的肉质鲜嫩,含有丰富的蛋白质和维生素,口感独特。火烧则取材自上海的小笼包,外脆内软,饼皮上覆盖着一层甜味的糖浆。这种食物的组合让驴肉火烧独具特色,香味四溢,吃起来既有肉的鲜美,又有甜味的融合。
肃宁地瓜粉是肃宁县的传统特产之一。它选用新鲜的地瓜为原料,经过洗净、切碎、压榨等工艺制作而成。地瓜粉质地细腻,色泽红亮,富有弹性。它无论是做成糕点还是煮粥都十分美味。肃宁地瓜粉富含膳食纤维和多种矿物质,是一种营养丰富、健康美食。
土豆炖牛尾是肃宁县的一道家常菜。选用新鲜的牛尾肉和土豆为主要食材,经过炖煮而成。牛尾肉炖煮后十分酥烂,搭配土豆的粉状口感,口感丰富,美味可口。这道菜品不仅营养丰富,而且独特的做法使其独具风味,成为肃宁县不可或缺的特色美食。
肃宁县以其独特的地理环境和丰富的农田资源,孕育出了各种各样的特色美食。肃宁水盆羊肉、驴肉火烧、肃宁地瓜粉、土豆炖牛尾等特色菜品都有着独特的做法和口感,吸引着来自不同地方的游客品尝。如果你来到肃宁县,一定不要错过这些美食,它们将会给你带来美味的享受。
感谢您阅读本篇文章,希望通过对肃宁县特色美食的介绍,能够让您更好地了解这个地方的独特饮食文化,为您的旅行或观光提供一些参考和帮助。
之前看了Mahout官方示例 20news 的调用实现;于是想根据示例的流程实现其他例子。网上看到了一个关于天气适不适合打羽毛球的例子。
训练数据:
Day Outlook Temperature Humidity Wind PlayTennis
D1 Sunny Hot High Weak No
D2 Sunny Hot High Strong No
D3 Overcast Hot High Weak Yes
D4 Rain Mild High Weak Yes
D5 Rain Cool Normal Weak Yes
D6 Rain Cool Normal Strong No
D7 Overcast Cool Normal Strong Yes
D8 Sunny Mild High Weak No
D9 Sunny Cool Normal Weak Yes
D10 Rain Mild Normal Weak Yes
D11 Sunny Mild Normal Strong Yes
D12 Overcast Mild High Strong Yes
D13 Overcast Hot Normal Weak Yes
D14 Rain Mild High Strong No
检测数据:
sunny,hot,high,weak
结果:
Yes=》 0.007039
No=》 0.027418
于是使用Java代码调用Mahout的工具类实现分类。
基本思想:
1. 构造分类数据。
2. 使用Mahout工具类进行训练,得到训练模型。
3。将要检测数据转换成vector数据。
4. 分类器对vector数据进行分类。
接下来贴下我的代码实现=》
1. 构造分类数据:
在hdfs主要创建一个文件夹路径 /zhoujainfeng/playtennis/input 并将分类文件夹 no 和 yes 的数据传到hdfs上面。
数据文件格式,如D1文件内容: Sunny Hot High Weak
2. 使用Mahout工具类进行训练,得到训练模型。
3。将要检测数据转换成vector数据。
4. 分类器对vector数据进行分类。
这三步,代码我就一次全贴出来;主要是两个类 PlayTennis1 和 BayesCheckData = =》
package myTesting.bayes;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.util.ToolRunner;
import org.apache.mahout.classifier.naivebayes.training.TrainNaiveBayesJob;
import org.apache.mahout.text.SequenceFilesFromDirectory;
import org.apache.mahout.vectorizer.SparseVectorsFromSequenceFiles;
public class PlayTennis1 {
private static final String WORK_DIR = "hdfs://192.168.9.72:9000/zhoujianfeng/playtennis";
/*
* 测试代码
*/
public static void main(String[] args) {
//将训练数据转换成 vector数据
makeTrainVector();
//产生训练模型
makeModel(false);
//测试检测数据
BayesCheckData.printResult();
}
public static void makeCheckVector(){
//将测试数据转换成序列化文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"testinput";
String output = WORK_DIR+Path.SEPARATOR+"tennis-test-seq";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
SequenceFilesFromDirectory sffd = new SequenceFilesFromDirectory();
String[] params = new String[]{"-i",input,"-o",output,"-ow"};
ToolRunner.run(sffd, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("文件序列化失败!");
System.exit(1);
}
//将序列化文件转换成向量文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-test-seq";
String output = WORK_DIR+Path.SEPARATOR+"tennis-test-vectors";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
SparseVectorsFromSequenceFiles svfsf = new SparseVectorsFromSequenceFiles();
String[] params = new String[]{"-i",input,"-o",output,"-lnorm","-nv","-wt","tfidf"};
ToolRunner.run(svfsf, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("序列化文件转换成向量失败!");
System.out.println(2);
}
}
public static void makeTrainVector(){
//将测试数据转换成序列化文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"input";
String output = WORK_DIR+Path.SEPARATOR+"tennis-seq";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
SequenceFilesFromDirectory sffd = new SequenceFilesFromDirectory();
String[] params = new String[]{"-i",input,"-o",output,"-ow"};
ToolRunner.run(sffd, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("文件序列化失败!");
System.exit(1);
}
//将序列化文件转换成向量文件
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-seq";
String output = WORK_DIR+Path.SEPARATOR+"tennis-vectors";
Path in = new Path(input);
Path out = new Path(output);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
SparseVectorsFromSequenceFiles svfsf = new SparseVectorsFromSequenceFiles();
String[] params = new String[]{"-i",input,"-o",output,"-lnorm","-nv","-wt","tfidf"};
ToolRunner.run(svfsf, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("序列化文件转换成向量失败!");
System.out.println(2);
}
}
public static void makeModel(boolean completelyNB){
try {
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String input = WORK_DIR+Path.SEPARATOR+"tennis-vectors"+Path.SEPARATOR+"tfidf-vectors";
String model = WORK_DIR+Path.SEPARATOR+"model";
String labelindex = WORK_DIR+Path.SEPARATOR+"labelindex";
Path in = new Path(input);
Path out = new Path(model);
Path label = new Path(labelindex);
FileSystem fs = FileSystem.get(conf);
if(fs.exists(in)){
if(fs.exists(out)){
//boolean参数是,是否递归删除的意思
fs.delete(out, true);
}
if(fs.exists(label)){
//boolean参数是,是否递归删除的意思
fs.delete(label, true);
}
TrainNaiveBayesJob tnbj = new TrainNaiveBayesJob();
String[] params =null;
if(completelyNB){
params = new String[]{"-i",input,"-el","-o",model,"-li",labelindex,"-ow","-c"};
}else{
params = new String[]{"-i",input,"-el","-o",model,"-li",labelindex,"-ow"};
}
ToolRunner.run(tnbj, params);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("生成训练模型失败!");
System.exit(3);
}
}
}
package myTesting.bayes;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.fs.PathFilter;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.mahout.classifier.naivebayes.BayesUtils;
import org.apache.mahout.classifier.naivebayes.NaiveBayesModel;
import org.apache.mahout.classifier.naivebayes.StandardNaiveBayesClassifier;
import org.apache.mahout.common.Pair;
import org.apache.mahout.common.iterator.sequencefile.PathType;
import org.apache.mahout.common.iterator.sequencefile.SequenceFileDirIterable;
import org.apache.mahout.math.RandomAccessSparseVector;
import org.apache.mahout.math.Vector;
import org.apache.mahout.math.Vector.Element;
import org.apache.mahout.vectorizer.TFIDF;
import com.google.common.collect.ConcurrentHashMultiset;
import com.google.common.collect.Multiset;
public class BayesCheckData {
private static StandardNaiveBayesClassifier classifier;
private static Map<String, Integer> dictionary;
private static Map<Integer, Long> documentFrequency;
private static Map<Integer, String> labelIndex;
public void init(Configuration conf){
try {
String modelPath = "/zhoujianfeng/playtennis/model";
String dictionaryPath = "/zhoujianfeng/playtennis/tennis-vectors/dictionary.file-0";
String documentFrequencyPath = "/zhoujianfeng/playtennis/tennis-vectors/df-count";
String labelIndexPath = "/zhoujianfeng/playtennis/labelindex";
dictionary = readDictionnary(conf, new Path(dictionaryPath));
documentFrequency = readDocumentFrequency(conf, new Path(documentFrequencyPath));
labelIndex = BayesUtils.readLabelIndex(conf, new Path(labelIndexPath));
NaiveBayesModel model = NaiveBayesModel.materialize(new Path(modelPath), conf);
classifier = new StandardNaiveBayesClassifier(model);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("检测数据构造成vectors初始化时报错。。。。");
System.exit(4);
}
}
/**
* 加载字典文件,Key: TermValue; Value:TermID
* @param conf
* @param dictionnaryDir
* @return
*/
private static Map<String, Integer> readDictionnary(Configuration conf, Path dictionnaryDir) {
Map<String, Integer> dictionnary = new HashMap<String, Integer>();
PathFilter filter = new PathFilter() {
@Override
public boolean accept(Path path) {
String name = path.getName();
return name.startsWith("dictionary.file");
}
};
for (Pair<Text, IntWritable> pair : new SequenceFileDirIterable<Text, IntWritable>(dictionnaryDir, PathType.LIST, filter, conf)) {
dictionnary.put(pair.getFirst().toString(), pair.getSecond().get());
}
return dictionnary;
}
/**
* 加载df-count目录下TermDoc频率文件,Key: TermID; Value:DocFreq
* @param conf
* @param dictionnaryDir
* @return
*/
private static Map<Integer, Long> readDocumentFrequency(Configuration conf, Path documentFrequencyDir) {
Map<Integer, Long> documentFrequency = new HashMap<Integer, Long>();
PathFilter filter = new PathFilter() {
@Override
public boolean accept(Path path) {
return path.getName().startsWith("part-r");
}
};
for (Pair<IntWritable, LongWritable> pair : new SequenceFileDirIterable<IntWritable, LongWritable>(documentFrequencyDir, PathType.LIST, filter, conf)) {
documentFrequency.put(pair.getFirst().get(), pair.getSecond().get());
}
return documentFrequency;
}
public static String getCheckResult(){
Configuration conf = new Configuration();
conf.addResource(new Path("/usr/local/hadoop/conf/core-site.xml"));
String classify = "NaN";
BayesCheckData cdv = new BayesCheckData();
cdv.init(conf);
System.out.println("init done...............");
Vector vector = new RandomAccessSparseVector(10000);
TFIDF tfidf = new TFIDF();
//sunny,hot,high,weak
Multiset<String> words = ConcurrentHashMultiset.create();
words.add("sunny",1);
words.add("hot",1);
words.add("high",1);
words.add("weak",1);
int documentCount = documentFrequency.get(-1).intValue(); // key=-1时表示总文档数
for (Multiset.Entry<String> entry : words.entrySet()) {
String word = entry.getElement();
int count = entry.getCount();
Integer wordId = dictionary.get(word); // 需要从dictionary.file-0文件(tf-vector)下得到wordID,
if (StringUtils.isEmpty(wordId.toString())){
continue;
}
if (documentFrequency.get(wordId) == null){
continue;
}
Long freq = documentFrequency.get(wordId);
double tfIdfValue = tfidf.calculate(count, freq.intValue(), 1, documentCount);
vector.setQuick(wordId, tfIdfValue);
}
// 利用贝叶斯算法开始分类,并提取得分最好的分类label
Vector resultVector = classifier.classifyFull(vector);
double bestScore = -Double.MAX_VALUE;
int bestCategoryId = -1;
for(Element element: resultVector.all()) {
int categoryId = element.index();
double score = element.get();
System.out.println("categoryId:"+categoryId+" score:"+score);
if (score > bestScore) {
bestScore = score;
bestCategoryId = categoryId;
}
}
classify = labelIndex.get(bestCategoryId)+"(categoryId="+bestCategoryId+")";
return classify;
}
public static void printResult(){
System.out.println("检测所属类别是:"+getCheckResult());
}
}