以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]百度ai通用文字识别怎样自动分段  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=141730)

--  作者:天一生水
--  发布时间:2019/10/9 22:05:00
--  [求助]百度ai通用文字识别怎样自动分段
蓝老师好!
实例是把每一行添加“vbcrlf”进行连接,用什么方法可以自动分段?

图片点击可在新窗口打开查看此主题相关图片如下:截屏图片.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/10/10 10:06:00
--  
按什么规则分?
--  作者:天一生水
--  发布时间:2020/1/17 11:30:00
--  

老师好!
下面的代码是按照标点进行的分段。

想利用判断 ja(i)("words").Tostring 最大字符长度,如果本行字符小于这个最大长度,并且尾字符不是句号,逗号等的,就强制换行。这个怎么弄?
谢谢!


......


Dim ja As JArray = result("words_result")
For i As Integer = 0 To ja.Count - 1
    txt.text = txt.text & vbcrlf & ja(i)("words").Tostring
Next
txt.text = "    " & txt.text.replace("。" & vbcrlf  ,"@1" ).replace(":" & vbcrlf  ,"@2" ).replace(";" & vbcrlf  ,"@3" ).replace(vbcrlf  ,"" ).replace("@1" ,"。" & vbcrlf & "    ").replace("@2" ,":" & vbcrlf & "    ").replace("@3" ,";" & vbcrlf & "    ")


--  作者:有点蓝
--  发布时间:2020/1/17 11:41:00
--  
没看懂

如果本行字符小于这个最大长度 -- 如果1个字符也换行?

--  作者:天一生水
--  发布时间:2020/1/17 13:43:00
--  

老师,我是这样想的:

比如满行的字符是28个,其他行的长度与之相比;

如果其他行未达到28(实际再减2个字符,用26)个字符,就强制换行;否则就不换行。

......然后再添加一些其他规则。

我在遍历   ja(i)("words").Tostring  的过程中,怎样获取集合中各个值的最大长度Length呢?就是上边那个28。


--  作者:有点蓝
--  发布时间:2020/1/17 14:03:00
--  
遍历取最大值咯

Dim ja As JArray = result("words_result")
dim max as integer
For i As Integer = 0 To ja.Count - 1
  if max < ja(i)("words").Tostring().length then max = ja(i)("words").Tostring().length
Next
msgbox(max)

--  作者:天一生水
--  发布时间:2020/2/3 11:43:00
--  
蓝老师好!
如图,如果行中出现半角的字母或数字时,计数时会按照全角计算,怎样只计算汉字的数量呢?或者两个半角按一个字符计算。
麻烦蓝老师写个正则的排除代码,谢谢!

Dim ja As JArray = result("words_result")
dim max as integer
For i As Integer = 0 To ja.Count - 1
  if max < ja(i)("words").Tostring().length then max = ja(i)("words").Tostring().length
Next
msgbox(max)


此主题相关图片如下:tt截图未命名.bmp
按此在新窗口浏览图片



[此贴子已经被作者于2020/2/3 11:53:03编辑过]

--  作者:有点蓝
--  发布时间:2020/2/3 12:02:00
--  
获取中文字符

Dim pattern As String = "[^\\u4e00-\\u9fa5]"
Dim txt = "112地方地方好483"
Dim str = System.Text.RegularExpressions.Regex.Replace(txt , pattern ,"")
Output.Show(str)

获取非中文字符

Dim pattern As String = "[\\u4e00-\\u9fa5]"
Dim txt = "112地方地方好483"
Dim str = System.Text.RegularExpressions.Regex.Replace(txt , pattern ,"")
Output.Show(str)