设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Perl
›
幫我看看這個perl程式究竟什麼地方出錯了 ...
返回列表
查看:
1106
|
回复:
3
幫我看看這個perl程式究竟什麼地方出錯了
[复制链接]
Beta
Beta
当前离线
积分
1483
IP卡
狗仔卡
发表于 2006-4-17 14:43:31
|
显示全部楼层
|
阅读模式
為了去除詞庫文件中的重複詞條,我寫了下面這個名為「only.pl」的perl程式:
$file1 = "e:\大詞庫.txt";
$file2 = "e:\處理過的大詞庫.txt";
open (FILE1, "$file1") || die "讀唔倒文檔 $file1";
open (FILE2, ">$file2") || die "創建唔倒文檔 $file2";
select FILE2;
$new="";
while ($line=<FILE1>)
{
chomp $line;
if ($new =~ /$line/s){
;
}
else{
$new = "$new"."\n"."$line";
}
}
print $new;
close FILE1;
close FILE2;
复制代码
試驗下邊格式的文檔:
狼心
狼烟
狼崽
莨绸
狼心
莨苕
廊道
狼心
廊坊
廊庙
廊台
莨苕
廊道
狼心
廊坊
廊庙
莨苕
廊道
狼心
廊坊
廊庙
复制代码
可以成功得到預期結果:
狼心
狼烟
狼崽
莨绸
莨苕
廊道
廊坊
廊庙
廊台
复制代码
但是當我用它處理一個非常大的內含重複詞條的詞庫文檔(格式同上),運行十多分鐘後,出現錯誤:
/琅玕/: trailing \ in regexp at only.pl line 13; <FILE1> line 338442.
程式退出。
真是奇怪,不知道是什麼原因,誰能幫幫我找找原因?
待處理的非常大的內含重複詞條的詞庫文檔放在這裏:
http://free.ys168.com/?sxgpic
「詞條處理」目錄下「待去除相同詞條的合併大詞庫.rar」即是。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
饭饭
饭饭
当前离线
积分
81
IP卡
狗仔卡
发表于 2006-4-18 01:01:07
|
显示全部楼层
perl 我也是新手 ,不知道怎么解决, 不过你那个可以用shell 来解决的
你的意思是不是要去除掉文件里重复的行.
如果 是的话 , 可以用 sort -u 来解决 !
#!/usr/bin/perl -w
use strict;
print `cat test.txt|sort -u`;
你那个待处理的 我下载了 试了下 , 应该是没问题的 , 速度也比较快 ,
没整理之前的大詞庫.txt 是618629 条 , 整理过之后是442259 , 大致的看了下,没重复的,应该符合要求
回复
支持
反对
使用道具
举报
显身卡
Beta
Beta
当前离线
积分
1483
IP卡
狗仔卡
楼主
|
发表于 2006-4-18 13:09:49
|
显示全部楼层
我寫了另一個程式,解決了問題。利用哈希,處理速度很快。
如果改一下還可以統計出每一個詞重複的次數。
$file1 = "大詞庫.txt";
$file2 = "處理過的大詞庫.txt";
open (FILE1, "$file1") || die "讀唔倒文檔 $file1";
open (FILE2, ">$file2") || die "創建唔倒文檔 $file2";
select FILE2;
while ($line=<FILE1>)
{
chomp $line;
$wordlist{$line}+=1;
}
@mygod = keys (%wordlist);
foreach $word (@mygod){
print "$word\n";
}
close FILE1;
close FILE2;
复制代码
不過我先前寫的那個程式也應該沒有問題啊,就是奇怪啦。
回复
支持
反对
使用道具
举报
显身卡
ZenInPalm
ZenInPalm
当前离线
积分
14
IP卡
狗仔卡
发表于 2006-4-25 08:09:20
|
显示全部楼层
我没有找到你的词库,不过,问题应该是出在你直接使用$line进行内插,试试看改成qr($line),应该可以解决!
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
Linux 发行版其他专题
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表