javadictionary用法

java后台开发中字典表的设计和使用

SELECT user.* dict.name address FROM user LEFT JOIN dictionary dict ON user.address=dict.id

一起返回

Java中Hashtable代替C#中Dictionary的用法

个人感觉Hashtable是不适合做这个的,键值对和你的需求是不相符合的,给你个java求这个问题的代码··个人感觉比较简单

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collections;

import java.util.List;

public class Test2 {

public static void main(String[] args) throws IOException {

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

System.out.println(“输入要输入的字符串”);

String tagit1 = br.readLine();

String tagit = tagit1.toLowerCase();//大小写都是一个认识为同一字符

int temp=0,posit=0;

int letter[] = new int[26];

for (int i = 0; i tagit.length(); i++) {

char a = tagit.charAt(i);

letter[a – 97]++;

}

for(int i=0;i letter.length;i++){

if(letter[i]temp)

{

temp=letter[i];

posit=i;

}

}

System.out.println(“字符出现次数最多的是”+(char)(posit+97)+”出现次数为”+temp);

}

}

java中文分词组件word怎么使用

参考如下

1、快速体验

运行项目根目录下的脚本demo-word.bat可以快速体验分词效果

用法: command [text] [input] [output]

命令command的可选值为:demo、text、file

demo

text 杨尚川是APDPlat应用级产品开发平台的作者

file d:/text.txt d:/word.txt

exit

2、对文本进行分词

移除停用词:ListWord words = WordSegmenter.seg(“杨尚川是APDPlat应用级产品开发平台的作者”);

保留停用词:ListWord words = WordSegmenter.segWithStopWords(“杨尚川是APDPlat应用级产品开发平台的作者”);

System.out.println(words);

输出:

移除停用词:[杨尚川, apdplat, 应用级, 产品, 开发平台, 作者]

保留停用词:[杨尚川, 是, apdplat, 应用级, 产品, 开发平台, 的, 作者]

3、对文件进行分词

String input = “d:/text.txt”;

String output = “d:/word.txt”;

移除停用词:WordSegmenter.seg(new File(input), new File(output));

保留停用词:WordSegmenter.segWithStopWords(new File(input), new File(output));

4、自定义配置文件

默认配置文件为类路径下的word.conf,打包在word-x.x.jar中

自定义配置文件为类路径下的word.local.conf,需要用户自己提供

如果自定义配置和默认配置相同,自定义配置会覆盖默认配置

配置文件编码为UTF-8

5、自定义用户词库

自定义用户词库为一个或多个文件夹或文件,可以使用绝对路径或相对路径

用户词库由多个词典文件组成,文件编码为UTF-8

词典文件的格式为文本文件,一行代表一个词

可以通过系统属性或配置文件的方式来指定路径,多个路径之间用逗号分隔开

类路径下的词典文件,需要在相对路径前加入前缀classpath:

指定方式有三种:

指定方式一,编程指定(高优先级):

WordConfTools.set(“dic.path”, “classpath:dic.txt,d:/custom_dic”);

DictionaryFactory.reload();//更改词典路径之后,重新加载词典

指定方式二,Java虚拟机启动参数(中优先级):

java -Ddic.path=classpath:dic.txt,d:/custom_dic

指定方式三,配置文件指定(低优先级):

使用类路径下的文件word.local.conf来指定配置信息

dic.path=classpath:dic.txt,d:/custom_dic

如未指定,则默认使用类路径下的dic.txt词典文件

6、自定义停用词词库

使用方式和自定义用户词库类似,配置项为:

stopwords.path=classpath:stopwords.txt,d:/custom_stopwords_dic

7、自动检测词库变化

可以自动检测自定义用户词库和自定义停用词词库的变化

包含类路径下的文件和文件夹、非类路径下的绝对路径和相对路径

如:

classpath:dic.txt,classpath:custom_dic_dir,

d:/dic_more.txt,d:/DIC_DIR,D:/DIC2_DIR,my_dic_dir,my_dic_file.txt

classpath:stopwords.txt,classpath:custom_stopwords_dic_dir,

d:/stopwords_more.txt,d:/STOPWORDS_DIR,d:/STOPWORDS2_DIR,stopwords_dir,remove.txt

8、显式指定分词算法

对文本进行分词时,可显式指定特定的分词算法,如:

WordSegmenter.seg(“APDPlat应用级产品开发平台”, SegmentationAlgorithm.BidirectionalMaximumMatching);

SegmentationAlgorithm的可选类型为:

正向最大匹配算法:MaximumMatching

逆向最大匹配算法:ReverseMaximumMatching

正向最小匹配算法:MinimumMatching

逆向最小匹配算法:ReverseMinimumMatching

双向最大匹配算法:BidirectionalMaximumMatching

双向最小匹配算法:BidirectionalMinimumMatching

双向最大最小匹配算法:BidirectionalMaximumMinimumMatching

全切分算法:FullSegmentation

最少分词算法:MinimalWordCount

最大Ngram分值算法:MaxNgramScore

9、分词效果评估

运行项目根目录下的脚本evaluation.bat可以对分词效果进行评估

评估采用的测试文本有253 3709行,共2837 4490个字符

评估结果位于target/evaluation目录下:

corpus-text.txt为分好词的人工标注文本,词之间以空格分隔

test-text.txt为测试文本,是把corpus-text.txt以标点符号分隔为多行的结果

standard-text.txt为测试文本对应的人工标注文本,作为分词是否正确的标准

result-text-***.txt,***为各种分词算法名称,这是word分词结果

perfect-result-***.txt,***为各种分词算法名称,这是分词结果和人工标注标准完全一致的文本

wrong-result-***.txt,***为各种分词算法名称,这是分词结果和人工标注标准不一致的文本

JAVA里面的dictionary怎么用; 举个简单的例子最好,

我是用C#语言的,字典的基本思路就是,键值对!每个键值对应一个值。

这一段C#代码你可以参考一下:我想对你有帮助

public class OthelloCast : Liststring

{

// Use a dictionary to contain

// cast names (key) and actor names (value).

public Dictionarystring, string OthelloDict =

new Dictionarystring, string();

public OthelloCast()

{

// Add data to the dictionary.

OthelloDict.Add(“Bianca”, “Gretchen Rivas”);

OthelloDict.Add(“Brabantio”, “Carlos Lacerda”);

OthelloDict.Add(“Cassio”, “Steve Masters”);

OthelloDict.Add(“Clown”, “Michael Ludwig”);

OthelloDict.Add(“Desdemona”, “Catherine Autier Miconi”);

OthelloDict.Add(“Duke of Venice”, “Ken Circeo”);

OthelloDict.Add(“Emilia”, “Eva Valverde”);

OthelloDict.Add(“Gratiano”, “Akos Kozari”);

OthelloDict.Add(“Iago”, “Darius Stasevicius”);

OthelloDict.Add(“Lodovico”, “Fernando Souza”);

OthelloDict.Add(“Montano”, “Jeff Hay”);

OthelloDict.Add(“Othello”, “Marco Tanara”);

OthelloDict.Add(“Roderigo”, “Pedro Ruivo”);

// Populate the list with character names.

foreach (KeyValuePairstring, string kvp in OthelloDict)

{

this.Add(kvp.Key);

}

}

javadictionary用法

“dictionary”是什么意思?

意思是:词典;工具书的一种。

dictionary

1.【介绍】:一款智能的支持66种语言的全文翻译工具,一也是款非常小巧的多国语言字典,小小的几百K的程序却能够实现全文翻译以及网页搜寻多合一功能,同时支持的语言多达66种之多。

2.【对象】:用于在结对的名称/值中存储信息((等同于键和项目)。

3.【方法描述】:

CompareMode:设置或返回用于在 Dictionary 对象中比较键的比较模式。

Count:返回 Dictionary 对象中键/项目对的数目。

Item:设置或返回 Dictionary 对象中一个项目的值。

Add:向 Dictionary 对象添加新的键/项目对。

Exists:返回一个逻辑值,这个值可指示指定的键是否存在于 Dictionary 对象中。

4.【Java对象】:Dictionary 类是任何可将键映射到相应值的类(如 Hashtable)的抽象父类。每个键和每个值都是一个对象。在任何一个 Dictionary 对象中,每个键至多与一个值相关联。

5.【C#对象】:

TKey。

字典中的键的类型。

TValue。

字典中的值的类型。

aa3里dictionary是什么

转自CSDN_Yeoman92的博客,写得很好,请大家多去夸夸Ta

————————————

列表,元组,字典,集合的区别是python面试中最常见的一个问题。这个问题虽然很基础,但确实能反映出面试者的基础水平。

1.列表(List)

什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单。比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单。由于我们买一种东西可能不止一次,所以清单中是允许有重复项的。如果我们扩大清单的范围,统计我们过去一周所有的花费情况,那么这也是一个清单,但这个清单里会有类别不同的项,比如我们买东西是一种花费,交水电费也是一种花费,这些项的类型是可以使不同的。python的列表个跟清单的道理是一样的,特点就是:可重复,类型可不同。类型不同也是跟数组最本质的区别了。python里的列表用“[]”表示。

#定义一个列表 listA = [‘a’, ‘b’, ‘c’, 1, 2] listA[1] # ‘b’ # 向 list 中增加元素 # 1.使用append 向list 的末尾追加单个元素。(把列表当做堆栈使用——后进(后出)) #listA = [‘a’, ‘b’, ‘c’, 1, 2, 3] listA.append(3) # 2.使用 insert 将单个元素插入到list 中。数值参数是插入点的索引 # 在下标为3处插入一个元素,listA = [‘a’, ‘b’, ‘c’, ‘d’, 1, 2, 3] listA.insert(3, ‘d’) # 3.使用 extend 用来连接 list # listA = [‘a’, ‘b’, ‘c’, ‘d’, 1, 2, 3, 7, 8] listA.extend([7, 8]) # 获取列表的长度 print len(listA) # 9 # 在 list 中搜索 listA.index(3) # index 在 list 中查找一个值的首次出现并返回索引值。 listA.index(‘100’) # 如果在 list 中没有找到值,Python 会引发一个异常。 print 5 in listA # 要测试一个值是否在 list 内,使用 in。如果值存在,它返回 True,否则返为 False 。 # 从 list 中删除元素 listA.remove(3) # remove 从 list 中 仅仅 删除一个值的首次出现。如果在 list 中没有找到值,Python 会引发一个异常 print listA.pop() # pop 它会做两件事:删除 list 的最后一个元素,然后返回删除元素的值。(把列表当做堆栈使用——(后进)后出) # 还有一种把列表当做队列使用,最先进入的元素最先释放(先进先出) # 不过,列表这样用效率不高。相对来说从列表末尾添加和弹出很快; # 在头部插入和弹出很慢(因为,为了一个元素,要移动整个列表中的所有元素)。 # 遍历list for item in listA: print item

extend (扩展) 与 append (追加) 的看起来类似,但实际上完全不同。

extend 接受一个参数,这个参数总是一个 list,并且把这个 list 中的每个元素添加到原 list 中。

append 接受一个参数,这个参数可以是任何数据类型,并且简单地追加到 list 的尾部

li = [‘a’, ‘b’, ‘c’] li.extend([‘d’, ‘e’, ‘f’]) li [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’] len(li) 6 li[-1] ‘f’ li = [‘a’, ‘b’, ‘c’] li.append([‘d’, ‘e’, ‘f’]) li [‘a’, ‘b’, ‘c’, [‘d’, ‘e’, ‘f’]] len(li) 4 li[-1] [‘d’, ‘e’, ‘f’]

2.元组(Tuple)

元组和列表在结构上没有什么区别,唯一的差异在于元组是只读的,不能修改。元组用“()”表示

#定义一个元组 tuple1 = (1,2,’a’,4,’5′,6) # 定义了一个元组之后就无法再添加或修改元组中的元素 print tuple1[2] # ‘a’ 元组的元素都有确定的顺序。元组的索引也是以0为基点的 print tuple1[-1] # ‘5’ 负的索引从元组的尾部开始计数 print tuple1[1:3] # (2, ‘a’) 元组也可以进行切片操作。对元组切片可以得到(返回)新的元组,原元组不变 # 可以使用 in 运算符检查某元素是否存在于元组中。 print 1 in tuple1 # True #使用for in 进行遍历元组 for item in tuple1: print item # 如果需要获取item的序号 可以使用下面的遍历方法: for index in range(len(tuple1)): #range(len(tuple1))就是生成一个自然排序列表 print tuple1[index] # 还可以使用内置的enumerate函数 for index, item in enumerate(tuple1): print ‘%i, %s’ % (index, item)

3.字典(Dictionary)

字典定义了键和值之间一对一的关系,但它们是以无序的方式储存的。 Python 中的 dictionary 像 Java 中的 Hashtable 类的实例。定义 Dictionary 使用一对大(花)括号” { } “

Dictionary 不只是用于存储字符串。Dictionary 的值可以是任意数据类型,包括字符串、整数、对象,甚至其它的 dictionary。

在单个 dictionary 里,dictionary 的值并不需要全都是同一数据类型,可以根据需要混用和匹配。

# 定义一个字典 dict1 = {‘name’ : ‘yeoman’, ‘age’ : 24, ‘sex’ : ‘Male’} dict1[‘name’] = ‘yuanm’ # 为一个已经存在的 dictionary key 赋值,将简单覆盖原有的值。 dict1[‘Age’] = 25 # 在 Python 中是区分大小写的 age和Age是完全不同的两个key # 从字典中删除元素 del dict1[‘sex’] # del 允许您使用 key 从一个 dictionary 中删除独立的元素 dict1.clear() # clear 从一个 dictionary 中清除所有元素

4.集合(Set)

Python的集合(set)和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.由于集合是无序的,所以,sets 不支持索引, 分片, 或其它类序列(sequence-like)的操作。

集合也存在不可变形式,frozenset为固定集合.

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

注意:想要创建空集合,你必须使用 set() 而不是 {} ,后者用于创建空字典

可以通过一个set函数转换成集合,如:

lst = [ 1, 1, 0] lst_set = set( lst ) #lst_set 为1 , 0 tup = (2, 2, 1) tup_set = set( tup) # tup_set为2 , 1 for item in lst_set: print item # 使用 set 函数创建集合 list1 = [6, 7, 7, 8, 8, 9] set2 = set(list1) set2.add(10) # 添加新元素 print set2 # set([8, 9, 10, 6, 7]) 去掉重复内容,而且是无序的 set3 = frozenset(list1) #set3.add(10) # 固定集合不能添加元素,会报错AttributeError: ‘frozenset’ object has no attribute ‘add’ ### 集合有并集,交集,求差操作 ### a b 并集:intersection() 方法返回一个新集合,包含在两个集合中同时出现的所有元素。 ### a | b 交集:union() 方法返回一个新集合,包含在两个 集合中出现的元素。 ### a – b 差集:difference() 方法返回的新集合中,包含所有在 集合A出现但未在集合B中的元素。 ### a ^ b 对称差集:symmetric_difference() 方法返回一个新集合,包含所有只在其中一个集合中出现的元素。 # 删除元素 set2.discard(6) # 当元素不存在时,不会引发异常 set2.remove(6) # 与discard的区别在于,如果没有要删除的元素,remove会引发一个异常 set2.pop() # 因为set是无序的,所以pop会随机的从set中删除一个元素

展开阅读全文

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月26日 05:38:07
下一篇 2024年3月26日 05:45:19

发表回复

登录后才能评论



关注微信