VB问题。统计中英文单词的个数。

1、 统计中英文单词的个数。
在文本框中读入一篇文章,然后统计文中中英文单词的个数。扩展:统计英文单词出现的字频
急!!!!!!!!!在线等!!!!!!!!!!!!!!1
那个不是中英文单词数,是纯英文的,不小心打错了,见谅.

第1个回答  2009-07-03
估计就是统计字数吧。英文为单词个数,中文只有字数了。貌似没有统计中文单词这一说法。 统计词频会大大降低程序的运行效率。
第2个回答  2009-07-02
英文单词还可以判断,前后有空格的,但中文你怎么判断呢
第3个回答  2009-07-02
用ASCII来判断?
反正中文的字符ASCII码都是小于0的
第4个回答  2009-07-03
汉字个数可以通过正则得到,问题是你要字还是词,词就不好弄了...

英文字频:
'引用 Microsoft Scripting Runtime

Dim sFile As String
Dim lngFile As Long
Dim dic As Dictionary
Dim tmp
Dim i As Long

lngFile = FreeFile
Open App.Path & "\myFile.txt" For Binary As lngFile
sFile = Space(LOF(lngFile))
Get lngFile, , sFile
Close
'替换标点符号 (简单示例其它视情况整理)
sFile = Replace(sFile, ".", Space(1))
sFile = Replace(sFile, ",", Space(1))
sFile = Replace(sFile, "?", Space(1))
sFile = Replace(sFile, vbCrLf, Space(1))
'按空格读取单词(用instr搜索快一点,这儿示例用split相对简单一点)
tmp = Split(sFile, Space(1))
Set dic = New Dictionary
For i = 1 To UBound(tmp)
tmp(i) = Trim(tmp(i))
If Len(tmp(i)) Then
If dic.Exists(tmp(i)) Then
dic.Item(tmp(i)) = dic.Item(tmp(i)) + 1
Else
dic.Add tmp(i), 1
End If
End If
Next
'输出结果
For i = 0 To dic.Count - 1
Debug.Print dic.Keys(i) & " - " & dic.Items(i)
Next

Set dic = Nothing

中文字频和这个一样,一个个加字典统计即可本回答被提问者采纳
相似回答