• 大小: 16.08MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-14
  • 语言: C/C++
  • 标签:

资源简介

中科院分词系统,开发,古诗自动生成程序。

资源截图

代码片段和文件信息

//自动及辅助集诗句系统
#include 
#include     
#include 
#include 
#include  
#include
#include 
#include 
#define MAX 600000
using namespace std;
////////////////////////////////////////////////////////////////////////////////////////全局变量及子函数声明;
struct CharTimes
{
wchar_t HanChar1;
wchar_t HanChar2;
bool operator<(const CharTimes& other)const
{
       if(HanChar1    return true;
   else if(HanChar1==other.HanChar1)
       return HanChar2          return false;
}
};
map CharMap0;
map CharMap1;
map TimesMap0;
map OutprobMap;
multimap SortMap;
//map ChosenVerseMap;
set CheckSameChar0;
set CheckSameChar1;
set keywordsNum;
multimap SortResultMap;
map fuzhumap;
map fuzhumap1;
////////////////////////////////////////////////////////////////////////////////////////主函数;
int main () 
{
cout<<“--------------------------------------------------------“< cout<<“本集诗程序适于生成五言及七言诗。生成一句诗大约需要15-20秒。“< cout<<“第一次使用该程序正在将语料库植入内存大约耗时1分钟左右,请耐心等待......“< std::locale loc = std::locale::global( std::locale(“.936“std::locale::ctype) );
setlocale(LC_ALL“Chinese-simplified“);
wcout.imbue(std::locale(“chs“));
wstring* buffer;
int TXTlength=0;
buffer=new wstring[MAX];
wifstream fin(“全唐诗语料库.txt“);
if(!fin)//文件打开失败的异常处理;
{   
cerr<<“open file failed.“< exit(-1);        
}
while(!fin.eof())//语料库植入内存;
{
std::getline(finbuffer[TXTlength++]);
}
cout<<“植入完毕!“< cout<<“--------------------------------------------------------“< cout<<“两种模式可以选择:“< cout<<“1.自动集诗系统:输入首句和句数,系统自动做出全诗;“< cout<<“2.辅助集诗系统:输入首句和句数,系统每句会输出20个候选句子,由你选择使用哪个作为最佳诗句。“< cout<<“3.退出系统。“< cout<<“请选择模式编号(1或2或3,按回车结束):“< int t;
while(cin>>t)//模式选择;
{
if(t==1)//模式1;
{
cout<<“(自动模式)请输入第一句话和诗句的个数(两者以空格隔开):“< wstring strin;int jushu;int n;
wcin>>strin>>n;
fuzhumap1[1]=strin;
jushu=n;wstring ss=strin;
 while(jushu>1)//未到句数继续循环;
 {
for(int i=0;i CheckSameChar0.insert(ss[i]);
wstring instr;
int kk0instrlengthpos00;
CharTimes structtemp;
for(int k=0;k {
instr=buffer[k];instrlength=instr.length();
for (int i=0;i {
kk0=instr.find(ss[i]0);
if(kk0!=-1&&(instrlength==12||instrlength==16))
{
if(kk0>=instrlength/2)
{
pos00=kk0+instrlength/2;
for(int j=0;j {
if(j!=pos00)
{
structtemp.HanChar1=ss[i];
structtemp.HanChar2=instr[j];
CharMap0[structtemp]=CharMap0[structtemp]+1;
CharMap1[structtemp]=instr[j];
}
else
{
structtemp.HanChar1=ss[i];
structtemp.HanChar2=instr[pos00];
CharMap

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      11163  2013-12-27 19:03  大作业_常超_P1310614\可执行程序及源代码\main.cpp

     文件    6911512  2013-12-27 14:35  大作业_常超_P1310614\可执行程序及源代码\全唐诗语料库.txt

     文件     378880  2013-12-27 19:03  大作业_常超_P1310614\可执行程序及源代码\集诗系统.exe

     文件     560346  2013-12-27 18:55  大作业_常超_P1310614\大作业报告.pdf

     文件   12943885  2013-12-27 19:09  大作业_常超_P1310614\集诗系统完整工程文件.rar

     目录          0  2013-12-27 19:05  大作业_常超_P1310614\可执行程序及源代码

     目录          0  2013-12-27 19:10  大作业_常超_P1310614

----------- ---------  ---------- -----  ----

             20805786                    7


评论

共有 条评论

相关资源