Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
Njust.Pdf.Analysis.V4.5
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
陶然
Njust.Pdf.Analysis.V4.5
Commits
51a59d4b
Commit
51a59d4b
authored
Jun 10, 2021
by
陶然
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化
parent
c98e4caf
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
1118 additions
and
181 deletions
+1118
-181
DisCoOrgran.cs
Src/Entities/DisCoOrgran.cs
+1
-1
DisCountry.cs
Src/Entities/DisCountry.cs
+3
-0
DisTimeTopic.cs
Src/Entities/DisTimeTopic.cs
+1
-1
DisTopicEvolution.cs
Src/Entities/DisTopicEvolution.cs
+2
-2
AnalyseJob.cs
Src/Jobs/AnalyseJob.cs
+7
-4
Njust.Pdf.Analysis.V4.5.csproj
Src/Njust.Pdf.Analysis.V4.5.csproj
+4
-0
Njust.Pdf.Analysis.V4.5.csproj.user
Src/Njust.Pdf.Analysis.V4.5.csproj.user
+7
-0
countrytranslation.txt
Src/Resources/countrytranslation.txt
+187
-0
RestfulAnalyse.cs
Src/Tranforms/RestfulAnalyse.cs
+13
-9
RestfulDisAnalyse.cs
Src/Tranforms/RestfulDisAnalyse.cs
+465
-5
RestfulDistribution.cs
Src/Tranforms/RestfulDistribution.cs
+428
-159
No files found.
Src/Entities/DisCoOrgran.cs
View file @
51a59d4b
...
@@ -10,7 +10,7 @@ namespace Njust.Pdf.Analysis.Entities
...
@@ -10,7 +10,7 @@ namespace Njust.Pdf.Analysis.Entities
{
{
[
Alias
(
Configs
.
TableDisCoOrgan
)]
[
Alias
(
Configs
.
TableDisCoOrgan
)]
[
Api
(
Description
=
"机构合作分布"
)]
[
Api
(
Description
=
"机构合作分布"
)]
public
class
DisCoOrg
r
an
:
EntityWithMetadata
public
class
DisCoOrgan
:
EntityWithMetadata
{
{
[
ApiMember
(
Description
=
"所属领域"
)]
[
ApiMember
(
Description
=
"所属领域"
)]
public
string
DomainName
{
get
;
set
;
}
public
string
DomainName
{
get
;
set
;
}
...
...
Src/Entities/DisCountry.cs
View file @
51a59d4b
...
@@ -24,6 +24,9 @@ namespace Njust.Pdf.Analysis.Entities
...
@@ -24,6 +24,9 @@ namespace Njust.Pdf.Analysis.Entities
[
ApiMember
(
Description
=
"国家"
)]
[
ApiMember
(
Description
=
"国家"
)]
public
string
Country
{
get
;
set
;
}
public
string
Country
{
get
;
set
;
}
[
ApiMember
(
Description
=
"英文表示"
)]
public
string
EnCountry
{
get
;
set
;
}
[
ApiMember
(
Description
=
"国家发表文献数量"
)]
[
ApiMember
(
Description
=
"国家发表文献数量"
)]
public
int
Count
{
get
;
set
;
}
public
int
Count
{
get
;
set
;
}
}
}
...
...
Src/Entities/DisTimeTopic.cs
View file @
51a59d4b
...
@@ -28,7 +28,7 @@ namespace Njust.Pdf.Analysis.Entities
...
@@ -28,7 +28,7 @@ namespace Njust.Pdf.Analysis.Entities
public
string
TopicWord
{
get
;
set
;
}
public
string
TopicWord
{
get
;
set
;
}
[
ApiMember
(
Description
=
"主题词概率TOP10"
)]
[
ApiMember
(
Description
=
"主题词概率TOP10"
)]
public
string
TopicWordProbability
{
get
;
set
;
}
public
List
<
double
>
TopicWordProbability
{
get
;
set
;
}
[
ApiMember
(
Description
=
"主题支持文档列表"
)]
[
ApiMember
(
Description
=
"主题支持文档列表"
)]
[
StringLength
(
5000
)]
[
StringLength
(
5000
)]
...
...
Src/Entities/DisTopicEvolution.cs
View file @
51a59d4b
...
@@ -8,8 +8,8 @@ using Kivii.DataAnnotations;
...
@@ -8,8 +8,8 @@ using Kivii.DataAnnotations;
namespace
Njust.Pdf.Analysis.Entities
namespace
Njust.Pdf.Analysis.Entities
{
{
[
Alias
(
Configs
.
TableDisT
imeTopic
)]
[
Alias
(
Configs
.
TableDisT
opicEvolution
)]
[
Api
(
Description
=
"
TableDisTopicEvolution
"
)]
[
Api
(
Description
=
"
主题演化分布
"
)]
public
class
DisTopicEvolution
:
EntityWithMetadata
public
class
DisTopicEvolution
:
EntityWithMetadata
{
{
[
ApiMember
(
Description
=
"所属领域"
)]
[
ApiMember
(
Description
=
"所属领域"
)]
...
...
Src/Jobs/AnalyseJob.cs
View file @
51a59d4b
...
@@ -42,9 +42,6 @@ namespace Njust.Pdf.Analysis.Jobs
...
@@ -42,9 +42,6 @@ namespace Njust.Pdf.Analysis.Jobs
}
}
private
bool
textPdfBox
()
private
bool
textPdfBox
()
{
{
//var text1 = "\x9f\x0f\x12";
Regex
regex
=
new
Regex
(
@"/\\x[\da-zA-Z]+/g"
);
//text1 = regex.Replace(text1, "");
int
succeed
=
0
,
total
=
0
;
int
succeed
=
0
,
total
=
0
;
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
AnalyseAll
>();
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
AnalyseAll
>();
try
try
...
@@ -73,8 +70,10 @@ namespace Njust.Pdf.Analysis.Jobs
...
@@ -73,8 +70,10 @@ namespace Njust.Pdf.Analysis.Jobs
if
(
pdfFile
==
null
)
throw
new
Exception
(
$"未找Pdf文件:
{
item
.
Title
}
,HashCode:
{
item
.
HashCode
}
"
);
if
(
pdfFile
==
null
)
throw
new
Exception
(
$"未找Pdf文件:
{
item
.
Title
}
,HashCode:
{
item
.
HashCode
}
"
);
var
physicalStorageFilePath
=
pdfFile
.
GetPhysicalPath
();
var
physicalStorageFilePath
=
pdfFile
.
GetPhysicalPath
();
if
(!
File
.
Exists
(
physicalStorageFilePath
))
throw
new
Exception
(
$"未找Pdf文件:
{
item
.
Title
}
,HashCode:
{
item
.
HashCode
}
"
);
if
(!
File
.
Exists
(
physicalStorageFilePath
))
throw
new
Exception
(
$"未找Pdf文件:
{
item
.
Title
}
,HashCode:
{
item
.
HashCode
}
"
);
Console
.
WriteLine
(
"-------------------------Pre-------------------------"
);
Console
.
WriteLine
(
$"-------------------------
{
physicalStorageFilePath
}
-------------------------"
);
var
text
=
Kivii
.
PdfBox
.
Instance
.
ReadText
(
physicalStorageFilePath
);
var
text
=
Kivii
.
PdfBox
.
Instance
.
ReadText
(
physicalStorageFilePath
);
text
=
regex
.
Replace
(
text
,
"
"
);
Console
.
WriteLine
(
"-------------------------Ok-------------------------
"
);
item
.
Allbody
=
text
;
item
.
Allbody
=
text
;
item
.
AddOnlyProperties
(
o
=>
o
.
Allbody
);
item
.
AddOnlyProperties
(
o
=>
o
.
Allbody
);
item
.
AnlysisTime
=
DateTime
.
Now
;
item
.
AnlysisTime
=
DateTime
.
Now
;
...
@@ -83,15 +82,19 @@ namespace Njust.Pdf.Analysis.Jobs
...
@@ -83,15 +82,19 @@ namespace Njust.Pdf.Analysis.Jobs
item
.
AddOnlyProperties
(
o
=>
o
.
AnlysisUserName
);
item
.
AddOnlyProperties
(
o
=>
o
.
AnlysisUserName
);
item
.
IsAnlysis
=
true
;
item
.
IsAnlysis
=
true
;
item
.
AddOnlyProperties
(
o
=>
o
.
IsAnlysis
);
item
.
AddOnlyProperties
(
o
=>
o
.
IsAnlysis
);
Console
.
WriteLine
(
"-------------------------PreUpdateOnly-------------------------"
);
conn
.
UpdateOnly
(
item
);
conn
.
UpdateOnly
(
item
);
Console
.
WriteLine
(
"-------------------------UpdateOnly-------------------------"
);
succeed
++;
succeed
++;
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
Console
.
WriteLine
(
"-------------------------Ex-------------------------"
);
TaskContext
.
Message
=
$"处理消息异常:共处理
{
succeed
}
/
{
total
}
,Kvid:
{
item
.
Kvid
}
,Ex:
{
ex
.
Message
}
"
;
TaskContext
.
Message
=
$"处理消息异常:共处理
{
succeed
}
/
{
total
}
,Kvid:
{
item
.
Kvid
}
,Ex:
{
ex
.
Message
}
"
;
item
.
Status
+=
1
;
item
.
Status
+=
1
;
item
.
AddOnlyProperties
(
o
=>
o
.
Status
);
item
.
AddOnlyProperties
(
o
=>
o
.
Status
);
conn
.
UpdateOnly
(
item
);
conn
.
UpdateOnly
(
item
);
Console
.
WriteLine
(
"-------------------------ExUpdate-------------------------"
);
return
false
;
return
false
;
}
}
...
...
Src/Njust.Pdf.Analysis.V4.5.csproj
View file @
51a59d4b
...
@@ -84,5 +84,8 @@
...
@@ -84,5 +84,8 @@
<ItemGroup>
<ItemGroup>
<None
Include=
"packages.config"
/>
<None
Include=
"packages.config"
/>
</ItemGroup>
</ItemGroup>
<ItemGroup>
<EmbeddedResource
Include=
"Resources\countrytranslation.txt"
/>
</ItemGroup>
<Import
Project=
"$(MSBuildToolsPath)\Microsoft.CSharp.targets"
/>
<Import
Project=
"$(MSBuildToolsPath)\Microsoft.CSharp.targets"
/>
</Project>
</Project>
\ No newline at end of file
Src/Njust.Pdf.Analysis.V4.5.csproj.user
0 → 100644
View file @
51a59d4b
<?xml version="1.0" encoding="utf-8"?>
<Project
ToolsVersion=
"Current"
xmlns=
"http://schemas.microsoft.com/developer/msbuild/2003"
>
<PropertyGroup>
<ProjectView>
ProjectFiles
</ProjectView>
</PropertyGroup>
</Project>
\ No newline at end of file
Src/Resources/countrytranslation.txt
0 → 100644
View file @
51a59d4b
Singapore Rep.:新加坡
Dominican Rep.:多米尼加
Palestine:巴勒斯坦
Bahamas:巴哈马
Timor-Leste:东帝汶
Afghanistan:阿富汗
Guinea-Bissau:几内亚比绍
Côte dIvoire:科特迪瓦
Siachen Glacier:锡亚琴冰川
Br. Indian Ocean Ter.:英属印度洋领土
Angola:安哥拉
Albania:阿尔巴尼亚
United Arab Emirates:阿联酋
Argentina:阿根廷
Armenia:亚美尼亚
French Southern and Antarctic Lands:法属南半球和南极领地
Australia:澳大利亚
Austria:奥地利
Azerbaijan:阿塞拜疆
Burundi:布隆迪
Belgium:比利时
Benin:贝宁
Burkina Faso:布基纳法索
Bangladesh:孟加拉国
Bulgaria:保加利亚
The Bahamas:巴哈马
Bosnia and Herz.:波斯尼亚和黑塞哥维那
Belarus:白俄罗斯
Belize:伯利兹
Bermuda:百慕大
Bolivia:玻利维亚
Brazil:巴西
Brunei:文莱
Bhutan:不丹
Botswana:博茨瓦纳
Central African Rep.:中非
Canada:加拿大
Switzerland:瑞士
Chile:智利
China:中国
Ivory Coast:象牙海岸
Cameroon:喀麦隆
Dem. Rep. Congo:刚果民主共和国
Congo:刚果
Colombia:哥伦比亚
Costa Rica:哥斯达黎加
Cuba:古巴
N. Cyprus:北塞浦路斯
Cyprus:塞浦路斯
Czech Rep.:捷克
Germany:德国
Djibouti:吉布提
Denmark:丹麦
Algeria:阿尔及利亚
Ecuador:厄瓜多尔
Egypt:埃及
Eritrea:厄立特里亚
Spain:西班牙
Estonia:爱沙尼亚
Ethiopia:埃塞俄比亚
Finland:芬兰
Fiji:斐
Falkland Islands:福克兰群岛
France:法国
Gabon:加蓬
United Kingdom:英国
Georgia:格鲁吉亚
Ghana:加纳
Guinea:几内亚
Gambia:冈比亚
Guinea Bissau:几内亚比绍
Eq. Guinea:赤道几内亚
Greece:希腊
Greenland:格陵兰
Guatemala:危地马拉
French Guiana:法属圭亚那
Guyana:圭亚那
Honduras:洪都拉斯
Croatia:克罗地亚
Haiti:海地
Hungary:匈牙利
Indonesia:印度尼西亚
India:印度
Ireland:爱尔兰
Iran:伊朗
Iraq:伊拉克
Iceland:冰岛
Israel:以色列
Italy:意大利
Jamaica:牙买加
Jordan:约旦
Japan:日本
Japan:日本本土
Kazakhstan:哈萨克斯坦
Kenya:肯尼亚
Kyrgyzstan:吉尔吉斯斯坦
Cambodia:柬埔寨
Korea:韩国
Kosovo:科索沃
Kuwait:科威特
Lao PDR:老挝
Lebanon:黎巴嫩
Liberia:利比里亚
Libya:利比亚
Sri Lanka:斯里兰卡
Lesotho:莱索托
Lithuania:立陶宛
Luxembourg:卢森堡
Latvia:拉脱维亚
Morocco:摩洛哥
Moldova:摩尔多瓦
Madagascar:马达加斯加
Mexico:墨西哥
Macedonia:马其顿
Mali:马里
Myanmar:缅甸
Montenegro:黑山
Mongolia:蒙古
Mozambique:莫桑比克
Mauritania:毛里塔尼亚
Malawi:马拉维
Malaysia:马来西亚
Namibia:纳米比亚
New Caledonia:新喀里多尼亚
Niger:尼日尔
Nigeria:尼日利亚
Nicaragua:尼加拉瓜
Netherlands:荷兰
Norway:挪威
Nepal:尼泊尔
New Zealand:新西兰
Oman:阿曼
Pakistan:巴基斯坦
Panama:巴拿马
Peru:秘鲁
Philippines:菲律宾
Papua New Guinea:巴布亚新几内亚
Poland:波兰
Puerto Rico:波多黎各
Dem. Rep. Korea:朝鲜
Portugal:葡萄牙
Paraguay:巴拉圭
Qatar:卡塔尔
Romania:罗马尼亚
Russia:俄罗斯
Rwanda:卢旺达
W. Sahara:西撒哈拉
Saudi Arabia:沙特阿拉伯
Sudan:苏丹
S. Sudan:南苏丹
Senegal:塞内加尔
Solomon Is.:所罗门群岛
Sierra Leone:塞拉利昂
El Salvador:萨尔瓦多
Somaliland:索马里兰
Somalia:索马里
Serbia:塞尔维亚
Suriname:苏里南
Slovakia:斯洛伐克
Slovenia:斯洛文尼亚
Sweden:瑞典
Swaziland:斯威士兰
Syria:叙利亚
Chad:乍得
Togo:多哥
Thailand:泰国
Tajikistan:塔吉克斯坦
Turkmenistan:土库曼斯坦
East Timor:东帝汶
Trinidad and Tobago:特里尼达和多巴哥
Tunisia:突尼斯
Turkey:土耳其
Tanzania:坦桑尼亚
Uganda:乌干达
Ukraine:乌克兰
Uruguay:乌拉圭
United States:美国
Uzbekistan:乌兹别克斯坦
Venezuela:委内瑞拉
Vietnam:越南
Vanuatu:瓦努阿图
West Bank:西岸
Yemen:也门
South Africa:南非
Zambia:赞比亚
Zimbabwe:津巴布韦
\ No newline at end of file
Src/Tranforms/RestfulAnalyse.cs
View file @
51a59d4b
...
@@ -192,6 +192,8 @@ namespace Njust.Pdf.Analysis.Tranforms
...
@@ -192,6 +192,8 @@ namespace Njust.Pdf.Analysis.Tranforms
var
allAuthors
=
conn
.
Select
<
Author
>(
o
=>
Sql
.
In
(
o
.
AnalyseKvid
,
Items
.
ConvertAll
(
p
=>
p
.
Kvid
)));
var
allAuthors
=
conn
.
Select
<
Author
>(
o
=>
Sql
.
In
(
o
.
AnalyseKvid
,
Items
.
ConvertAll
(
p
=>
p
.
Kvid
)));
var
allKeywords
=
conn
.
Select
<
Keyword
>(
o
=>
Sql
.
In
(
o
.
AnalyseKvid
,
Items
.
ConvertAll
(
p
=>
p
.
Kvid
)));
var
allKeywords
=
conn
.
Select
<
Keyword
>(
o
=>
Sql
.
In
(
o
.
AnalyseKvid
,
Items
.
ConvertAll
(
p
=>
p
.
Kvid
)));
var
allOrgans
=
conn
.
Select
<
Organ
>(
o
=>
Sql
.
In
(
o
.
AnalyseKvid
,
Items
.
ConvertAll
(
p
=>
p
.
Kvid
)));
var
allOrgans
=
conn
.
Select
<
Organ
>(
o
=>
Sql
.
In
(
o
.
AnalyseKvid
,
Items
.
ConvertAll
(
p
=>
p
.
Kvid
)));
var
allItems
=
conn
.
Select
<
Analyse
>(
o
=>
Sql
.
In
(
o
.
Kvid
,
Items
.
ConvertAll
(
p
=>
p
.
Kvid
)));
allItems
.
ThrowIfNullOrEmpty
(
"未找到要复核的项!"
);
var
trans
=
conn
.
OpenTransaction
();
var
trans
=
conn
.
OpenTransaction
();
...
@@ -201,6 +203,8 @@ namespace Njust.Pdf.Analysis.Tranforms
...
@@ -201,6 +203,8 @@ namespace Njust.Pdf.Analysis.Tranforms
{
{
if
(
item
==
null
)
continue
;
if
(
item
==
null
)
continue
;
if
(
item
.
Kvid
==
Guid
.
Empty
)
continue
;
if
(
item
.
Kvid
==
Guid
.
Empty
)
continue
;
var
exist
=
allItems
.
FirstOrDefault
(
o
=>
o
.
Kvid
==
item
.
Kvid
);
if
(
exist
==
null
)
continue
;
item
.
RemoveAllOnlyProperties
();
item
.
RemoveAllOnlyProperties
();
#
region
Author
#
region
Author
var
currentAuthors
=
allAuthors
.
Where
(
o
=>
o
.
AnalyseKvid
==
item
.
Kvid
).
ToList
();
var
currentAuthors
=
allAuthors
.
Where
(
o
=>
o
.
AnalyseKvid
==
item
.
Kvid
).
ToList
();
...
@@ -212,9 +216,9 @@ namespace Njust.Pdf.Analysis.Tranforms
...
@@ -212,9 +216,9 @@ namespace Njust.Pdf.Analysis.Tranforms
if
(
currentAuthors
.
Exists
(
o
=>
o
.
Name
==
auth
))
continue
;
if
(
currentAuthors
.
Exists
(
o
=>
o
.
Name
==
auth
))
continue
;
var
author
=
new
Author
();
var
author
=
new
Author
();
author
.
Name
=
auth
;
author
.
Name
=
auth
;
author
.
DomainName
=
item
.
DomainName
;
author
.
DomainName
=
exist
.
DomainName
;
author
.
Language
=
item
.
Language
;
author
.
Language
=
exist
.
Language
;
author
.
AnalyseKvid
=
item
.
Kvid
;
author
.
AnalyseKvid
=
exist
.
Kvid
;
conn
.
Insert
(
author
);
conn
.
Insert
(
author
);
}
}
item
.
Author
=
string
.
Join
(
";"
,
authors
);
item
.
Author
=
string
.
Join
(
";"
,
authors
);
...
@@ -233,9 +237,9 @@ namespace Njust.Pdf.Analysis.Tranforms
...
@@ -233,9 +237,9 @@ namespace Njust.Pdf.Analysis.Tranforms
if
(
currentKeywords
.
Exists
(
o
=>
o
.
Title
==
key
))
continue
;
if
(
currentKeywords
.
Exists
(
o
=>
o
.
Title
==
key
))
continue
;
var
keyword
=
new
Keyword
();
var
keyword
=
new
Keyword
();
keyword
.
Title
=
key
;
keyword
.
Title
=
key
;
keyword
.
DomainName
=
item
.
DomainName
;
keyword
.
DomainName
=
exist
.
DomainName
;
keyword
.
Language
=
item
.
Language
;
keyword
.
Language
=
exist
.
Language
;
keyword
.
AnalyseKvid
=
item
.
Kvid
;
keyword
.
AnalyseKvid
=
exist
.
Kvid
;
conn
.
Insert
(
keyword
);
conn
.
Insert
(
keyword
);
}
}
item
.
Keywords
=
string
.
Join
(
";"
,
keywords
);
item
.
Keywords
=
string
.
Join
(
";"
,
keywords
);
...
@@ -253,9 +257,9 @@ namespace Njust.Pdf.Analysis.Tranforms
...
@@ -253,9 +257,9 @@ namespace Njust.Pdf.Analysis.Tranforms
if
(
currentOrgans
.
Exists
(
o
=>
o
.
Title
==
key
))
continue
;
if
(
currentOrgans
.
Exists
(
o
=>
o
.
Title
==
key
))
continue
;
var
organ
=
new
Organ
();
var
organ
=
new
Organ
();
organ
.
Title
=
key
;
organ
.
Title
=
key
;
organ
.
DomainName
=
item
.
DomainName
;
organ
.
DomainName
=
exist
.
DomainName
;
organ
.
Language
=
item
.
Language
;
organ
.
Language
=
exist
.
Language
;
organ
.
AnalyseKvid
=
item
.
Kvid
;
organ
.
AnalyseKvid
=
exist
.
Kvid
;
conn
.
Insert
(
organ
);
conn
.
Insert
(
organ
);
}
}
item
.
Organization
=
string
.
Join
(
";"
,
organs
);
item
.
Organization
=
string
.
Join
(
";"
,
organs
);
...
...
Src/Tranforms/RestfulDisAnalyse.cs
View file @
51a59d4b
using
Kivii
;
using
Kivii
;
using
Kivii.Linq
;
using
Kivii.Linq
;
using
Kivii.Web
;
using
Kivii.Web
;
//using LDA.LdaModel;
using
Njust.Pdf.Analysis.Entities
;
using
Njust.Pdf.Analysis.Entities
;
using
System
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
using
System.Diagnostics
;
using
System.IO
;
using
System.Linq
;
using
System.Linq
;
using
System.Reflection
;
using
System.Text
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Threading.Tasks
;
namespace
Njust.Pdf.Analysis.Tranforms
namespace
Njust.Pdf.Analysis.Tranforms
{
{
public
class
DisAuthorAnalysing
:
RestfulExecution
<
DisAuthor
>
[
Api
(
Description
=
"作者分布"
)]
public
class
DisAuthorAnalysing
:
RestfulExecution
<
DisAuthor
>
{
{
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
{
...
@@ -20,6 +25,7 @@ namespace Njust.Pdf.Analysis.Tranforms
...
@@ -20,6 +25,7 @@ namespace Njust.Pdf.Analysis.Tranforms
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
Author
>();
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
Author
>();
var
query
=
conn
.
From
<
Author
>();
var
query
=
conn
.
From
<
Author
>();
query
.
OrderBy
(
o
=>
o
.
Name
);
var
allAuthors
=
conn
.
Select
(
query
);
var
allAuthors
=
conn
.
Select
(
query
);
var
group
=
allAuthors
.
GroupBy
(
o
=>
new
{
o
.
Name
,
o
.
DomainName
,
o
.
Language
});
var
group
=
allAuthors
.
GroupBy
(
o
=>
new
{
o
.
Name
,
o
.
DomainName
,
o
.
Language
});
...
@@ -51,11 +57,13 @@ namespace Njust.Pdf.Analysis.Tranforms
...
@@ -51,11 +57,13 @@ namespace Njust.Pdf.Analysis.Tranforms
//conn.UpdateOnly(exist);
//conn.UpdateOnly(exist);
//rtns.Results.Add(exist);
//rtns.Results.Add(exist);
}
}
rtns
.
Results
.
OrderBy
(
o
=>
o
.
Count
).
Take
(
20
);
rtns
.
Total
=
rtns
.
Results
.
Count
();
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
return
rtns
;
}
}
}
}
[
Api
(
Description
=
"作者合作分布"
)]
public
class
DisCoauthorAnalysing
:
RestfulExecution
<
DisCoauthor
>
public
class
DisCoauthorAnalysing
:
RestfulExecution
<
DisCoauthor
>
{
{
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
...
@@ -76,14 +84,14 @@ namespace Njust.Pdf.Analysis.Tranforms
...
@@ -76,14 +84,14 @@ namespace Njust.Pdf.Analysis.Tranforms
var
disCoauthors
=
new
List
<
DisCoauthor
>();
var
disCoauthors
=
new
List
<
DisCoauthor
>();
foreach
(
var
kv
in
group
)
foreach
(
var
kv
in
group
)
{
{
if
(
kv
.
Count
()
<
2
)
continue
;
if
(
kv
.
Count
()
<
2
)
continue
;
var
items
=
kv
.
ToList
();
var
items
=
kv
.
ToList
();
items
=
items
.
OrderBy
(
o
=>
o
.
Name
).
ToList
();
items
=
items
.
OrderBy
(
o
=>
o
.
Name
).
ToList
();
for
(
var
i
=
0
;
i
<
items
.
Count
()
-
1
;
i
++)
for
(
var
i
=
0
;
i
<
items
.
Count
()
-
1
;
i
++)
{
{
for
(
var
j
=
1
;
j
<
items
.
Count
()
-
i
;
j
++)
for
(
var
j
=
1
;
j
<
items
.
Count
()
-
i
;
j
++)
{
{
var
disCoauthor
=
new
DisCoauthor
();
var
disCoauthor
=
new
DisCoauthor
();
disCoauthor
.
DomainName
=
items
[
i
].
DomainName
;
disCoauthor
.
DomainName
=
items
[
i
].
DomainName
;
...
@@ -93,10 +101,11 @@ namespace Njust.Pdf.Analysis.Tranforms
...
@@ -93,10 +101,11 @@ namespace Njust.Pdf.Analysis.Tranforms
disCoauthors
.
Add
(
disCoauthor
);
disCoauthors
.
Add
(
disCoauthor
);
}
}
}
}
}
}
var
groupDisCoauthor
=
disCoauthors
.
GroupBy
(
o
=>
new
{
o
.
DomainName
,
o
.
Language
,
o
.
Author1
,
o
.
Author2
});
var
groupDisCoauthor
=
disCoauthors
.
GroupBy
(
o
=>
new
{
o
.
DomainName
,
o
.
Language
,
o
.
Author1
,
o
.
Author2
});
foreach
(
var
kv
in
groupDisCoauthor
)
foreach
(
var
kv
in
groupDisCoauthor
)
{
{
var
disCoauthor
=
new
DisCoauthor
();
var
disCoauthor
=
new
DisCoauthor
();
disCoauthor
.
DomainName
=
kv
.
Key
.
DomainName
;
disCoauthor
.
DomainName
=
kv
.
Key
.
DomainName
;
...
@@ -108,9 +117,460 @@ namespace Njust.Pdf.Analysis.Tranforms
...
@@ -108,9 +117,460 @@ namespace Njust.Pdf.Analysis.Tranforms
disCoauthor
.
RemoveAllOnlyProperties
();
disCoauthor
.
RemoveAllOnlyProperties
();
rtns
.
Results
.
Add
(
disCoauthor
);
rtns
.
Results
.
Add
(
disCoauthor
);
}
}
rtns
.
Results
.
OrderBy
(
o
=>
o
.
Count
).
Take
(
20
);
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
}
}
[
Api
(
Description
=
"年份分布"
)]
public
class
DisTrendAnalysing
:
RestfulExecution
<
DisTrend
>
{
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
var
rtns
=
new
RestfulQueryResponse
<
DisTrend
>();
rtns
.
Results
=
new
List
<
DisTrend
>();
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
Analyse
>();
var
query
=
conn
.
From
<
Analyse
>();
query
.
OrderBy
(
o
=>
o
.
PublishTime
);
query
.
Where
(
o
=>
o
.
IsChecked
==
true
);
var
allTrends
=
conn
.
Select
(
query
);
var
group
=
allTrends
.
GroupBy
(
o
=>
new
{
o
.
PublishTime
,
o
.
DomainName
,
o
.
Language
});
conn
.
InitEntityType
<
DisTrend
>();
conn
.
Delete
<
DisTrend
>(
o
=>
o
.
Kvid
==
o
.
Kvid
);
foreach
(
var
kv
in
group
)
{
var
disTrend
=
new
DisTrend
();
disTrend
.
Language
=
kv
.
Key
.
Language
;
disTrend
.
DomainName
=
kv
.
Key
.
DomainName
;
disTrend
.
Year
=
kv
.
Key
.
PublishTime
;
disTrend
.
Count
=
kv
.
Count
();
conn
.
Insert
(
disTrend
);
disTrend
.
RemoveAllOnlyProperties
();
rtns
.
Results
.
Add
(
disTrend
);
}
rtns
.
Results
.
OrderBy
(
o
=>
o
.
Count
).
Take
(
20
);
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
}
}
[
Api
(
Description
=
"机构分布"
)]
public
class
DisOrganAnalysing
:
RestfulExecution
<
DisOrgan
>
{
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
var
rtns
=
new
RestfulQueryResponse
<
DisOrgan
>();
rtns
.
Results
=
new
List
<
DisOrgan
>();
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
Organ
>();
var
query
=
conn
.
From
<
Organ
>();
query
.
OrderBy
(
o
=>
o
.
Title
);
var
allOrgans
=
conn
.
Select
(
query
);
var
group
=
allOrgans
.
GroupBy
(
o
=>
new
{
o
.
Title
,
o
.
DomainName
,
o
.
Language
});
conn
.
InitEntityType
<
DisOrgan
>();
conn
.
Delete
<
DisOrgan
>(
o
=>
o
.
Kvid
==
o
.
Kvid
);
foreach
(
var
kv
in
group
)
{
var
disOrgan
=
new
DisOrgan
();
disOrgan
.
Language
=
kv
.
Key
.
Language
;
disOrgan
.
DomainName
=
kv
.
Key
.
DomainName
;
disOrgan
.
Organ
=
kv
.
Key
.
Title
;
disOrgan
.
Count
=
kv
.
Count
();
conn
.
Insert
(
disOrgan
);
disOrgan
.
RemoveAllOnlyProperties
();
rtns
.
Results
.
Add
(
disOrgan
);
}
rtns
.
Results
.
OrderBy
(
o
=>
o
.
Count
).
Take
(
20
);
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
}
}
[
Api
(
Description
=
"机构合作分布"
)]
public
class
DisCoOrganAnalysing
:
RestfulExecution
<
DisCoOrgan
>
{
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
var
rtns
=
new
RestfulQueryResponse
<
DisCoOrgan
>();
rtns
.
Results
=
new
List
<
DisCoOrgan
>();
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
Organ
>();
var
query
=
conn
.
From
<
Organ
>();
query
.
OrderBy
(
o
=>
o
.
Title
);
var
allCoOrgans
=
conn
.
Select
(
query
);
conn
.
InitEntityType
<
DisCoOrgan
>();
conn
.
Delete
<
DisCoOrgan
>(
o
=>
o
.
Kvid
==
o
.
Kvid
);
var
group
=
allCoOrgans
.
GroupBy
(
o
=>
o
.
AnalyseKvid
);
var
disCoOrgrans
=
new
List
<
DisCoOrgan
>();
foreach
(
var
kv
in
group
)
{
if
(
kv
.
Count
()
<
2
)
continue
;
var
items
=
kv
.
ToList
();
items
=
items
.
OrderBy
(
o
=>
o
.
Title
).
ToList
();
for
(
var
i
=
0
;
i
<
items
.
Count
()
-
1
;
i
++)
{
for
(
var
j
=
1
;
j
<
items
.
Count
()
-
i
;
j
++)
{
var
disCoOrgran
=
new
DisCoOrgan
();
disCoOrgran
.
DomainName
=
items
[
i
].
DomainName
;
disCoOrgran
.
Language
=
items
[
i
].
Language
;
disCoOrgran
.
Organ1
=
items
[
i
].
Title
;
disCoOrgran
.
Organ2
=
items
[
i
+
j
].
Title
;
disCoOrgrans
.
Add
(
disCoOrgran
);
}
}
}
var
groupDisCoOrgran
=
disCoOrgrans
.
GroupBy
(
o
=>
new
{
o
.
DomainName
,
o
.
Language
,
o
.
Organ1
,
o
.
Organ2
});
foreach
(
var
kv
in
groupDisCoOrgran
)
{
var
disCoOrgran
=
new
DisCoOrgan
();
disCoOrgran
.
DomainName
=
kv
.
Key
.
DomainName
;
disCoOrgran
.
Language
=
kv
.
Key
.
Language
;
disCoOrgran
.
Organ1
=
kv
.
Key
.
Organ1
;
disCoOrgran
.
Organ2
=
kv
.
Key
.
Organ2
;
disCoOrgran
.
Count
=
kv
.
Count
();
conn
.
Insert
(
disCoOrgran
);
disCoOrgran
.
RemoveAllOnlyProperties
();
rtns
.
Results
.
Add
(
disCoOrgran
);
}
rtns
.
Results
.
OrderBy
(
o
=>
o
.
Count
).
Take
(
20
);
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
}
}
[
Api
(
Description
=
"国家分布"
)]
public
class
DisCountryAnalysing
:
RestfulExecution
<
DisCountry
>
{
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
var
rtns
=
new
RestfulQueryResponse
<
DisCountry
>();
rtns
.
Results
=
new
List
<
DisCountry
>();
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
Analyse
>();
var
query
=
conn
.
From
<
Analyse
>();
query
.
OrderBy
(
o
=>
o
.
Country
);
query
.
Where
(
o
=>
o
.
IsChecked
==
true
);
var
allCountrys
=
conn
.
Select
(
query
);
var
group
=
allCountrys
.
GroupBy
(
o
=>
new
{
o
.
Country
,
o
.
DomainName
,
o
.
Language
});
conn
.
InitEntityType
<
DisCountry
>();
conn
.
Delete
<
DisCountry
>(
o
=>
o
.
Kvid
==
o
.
Kvid
);
string
line
=
""
;
//List<string> EnCountry = new List<string>();
//List<string> CnCountry = new List<string>();
var
country
=
new
Dictionary
<
string
,
string
>();
using
(
StreamReader
sr
=
new
StreamReader
(
Assembly
.
GetExecutingAssembly
().
GetManifestResourceStream
(
"Njust.Pdf.Analysis.Resources.countrytranslation.txt"
)))
{
while
((
line
=
sr
.
ReadLine
())
!=
null
)
{
var
sArray
=
line
.
Split
(
':'
).
ToList
();
country
[
sArray
[
1
].
ToLower
()]
=
sArray
[
0
];
//EnCountry.Add(sArray[0]);
//CnCountry.Add(sArray[1]);
}
}
foreach
(
var
kv
in
group
)
{
var
disCountry
=
new
DisCountry
();
disCountry
.
Language
=
kv
.
Key
.
Language
;
disCountry
.
DomainName
=
kv
.
Key
.
DomainName
;
disCountry
.
Country
=
kv
.
Key
.
Country
;
try
{
disCountry
.
EnCountry
=
disCountry
.
Country
.
IsNullOrEmpty
()
?
""
:
country
[
disCountry
.
Country
];
}
catch
{
disCountry
.
EnCountry
=
disCountry
.
Country
;
}
//disCountry.EnCountry = EnCountry[CnCountry.IndexOf(disCountry.Country)];
disCountry
.
Count
=
kv
.
Count
();
conn
.
Insert
(
disCountry
);
disCountry
.
RemoveAllOnlyProperties
();
rtns
.
Results
.
Add
(
disCountry
);
}
rtns
.
Results
.
OrderBy
(
o
=>
o
.
Count
).
Take
(
20
);
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
}
}
[
Api
(
Description
=
"来源分布"
)]
public
class
DisSourceAnalysing
:
RestfulExecution
<
DisSource
>
{
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
var
rtns
=
new
RestfulQueryResponse
<
DisSource
>();
rtns
.
Results
=
new
List
<
DisSource
>();
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
Analyse
>();
var
query
=
conn
.
From
<
Analyse
>();
query
.
OrderBy
(
o
=>
o
.
Source
);
query
.
Where
(
o
=>
o
.
IsChecked
==
true
);
var
allSources
=
conn
.
Select
(
query
);
var
group
=
allSources
.
GroupBy
(
o
=>
new
{
o
.
Source
,
o
.
DomainName
,
o
.
Language
});
conn
.
InitEntityType
<
DisSource
>();
conn
.
Delete
<
DisSource
>(
o
=>
o
.
Kvid
==
o
.
Kvid
);
foreach
(
var
kv
in
group
)
{
var
disSource
=
new
DisSource
();
disSource
.
Language
=
kv
.
Key
.
Language
;
disSource
.
DomainName
=
kv
.
Key
.
DomainName
;
disSource
.
Source
=
kv
.
Key
.
Source
;
disSource
.
Count
=
kv
.
Count
();
conn
.
Insert
(
disSource
);
disSource
.
RemoveAllOnlyProperties
();
rtns
.
Results
.
Add
(
disSource
);
}
rtns
.
Results
.
OrderBy
(
o
=>
o
.
Count
).
Take
(
20
);
rtns
.
Total
=
rtns
.
Results
.
Count
();
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
return
rtns
;
}
}
}
}
[
Api
(
Description
=
"关键词共现"
)]
public
class
DisCoKeywordAnalysing
:
RestfulExecution
<
DisCoKeyword
>
{
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
var
rtns
=
new
RestfulQueryResponse
<
DisCoKeyword
>();
rtns
.
Results
=
new
List
<
DisCoKeyword
>();
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
Keyword
>();
var
query
=
conn
.
From
<
Keyword
>();
query
.
OrderBy
(
o
=>
o
.
Title
);
var
allCoKeywords
=
conn
.
Select
(
query
);
conn
.
InitEntityType
<
DisCoKeyword
>();
conn
.
Delete
<
DisCoKeyword
>(
o
=>
o
.
Kvid
==
o
.
Kvid
);
var
group
=
allCoKeywords
.
GroupBy
(
o
=>
o
.
AnalyseKvid
);
var
disCoKeywords
=
new
List
<
DisCoKeyword
>();
foreach
(
var
kv
in
group
)
{
if
(
kv
.
Count
()
<
2
)
continue
;
var
items
=
kv
.
ToList
();
items
=
items
.
OrderBy
(
o
=>
o
.
Title
).
ToList
();
for
(
var
i
=
0
;
i
<
items
.
Count
()
-
1
;
i
++)
{
for
(
var
j
=
1
;
j
<
items
.
Count
()
-
i
;
j
++)
{
var
disCoKeyword
=
new
DisCoKeyword
();
disCoKeyword
.
DomainName
=
items
[
i
].
DomainName
;
disCoKeyword
.
Language
=
items
[
i
].
Language
;
disCoKeyword
.
KeyWord1
=
items
[
i
].
Title
;
disCoKeyword
.
KeyWord2
=
items
[
i
+
j
].
Title
;
disCoKeywords
.
Add
(
disCoKeyword
);
}
}
}
var
groupDisCoKeyword
=
disCoKeywords
.
GroupBy
(
o
=>
new
{
o
.
DomainName
,
o
.
Language
,
o
.
KeyWord1
,
o
.
KeyWord2
});
foreach
(
var
kv
in
groupDisCoKeyword
)
{
var
disCoKeyword
=
new
DisCoKeyword
();
disCoKeyword
.
DomainName
=
kv
.
Key
.
DomainName
;
disCoKeyword
.
Language
=
kv
.
Key
.
Language
;
disCoKeyword
.
KeyWord1
=
kv
.
Key
.
KeyWord1
;
disCoKeyword
.
KeyWord2
=
kv
.
Key
.
KeyWord2
;
disCoKeyword
.
Count
=
kv
.
Count
();
conn
.
Insert
(
disCoKeyword
);
disCoKeyword
.
RemoveAllOnlyProperties
();
rtns
.
Results
.
Add
(
disCoKeyword
);
}
rtns
.
Results
.
OrderBy
(
o
=>
o
.
Count
).
Take
(
20
);
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
}
}
[
Api
(
Description
=
"时序主题分布"
)]
public
class
DisTimeTopicAnalysing
:
RestfulExecution
<
DisTimeTopic
>
{
//public override object OnExecution(IRequest req, IResponse res)
//{
// var rtns = new RestfulQueryResponse<DisTimeTopic>();
// rtns.Results = new List<DisTimeTopic>();
// var conn = KiviiContext.GetOpenedDbConnection<Analyse>();
// var query = conn.From<Analyse>();
// query.OrderBy(o => o.PublishTime);
// query.Where(o => o.IsChecked == true);
// var allDisTimeTopics = conn.Select(query);
// var group = allDisTimeTopics.GroupBy(o => new { o.PublishTime, o.DomainName, o.Language });
// conn.InitEntityType<DisTimeTopic>();
// conn.Delete<DisTimeTopic>(o => o.Kvid == o.Kvid);
// foreach (var kv in group)
// {
// List<String> englishtext = new List<string>();
// List<String> chinesetext = new List<string>();
// var items = kv.ToList();
// if (kv.Key.Language == "英文")
// {
// for (var i = 0; i < items.Count(); i++)
// {
// englishtext.Add(items[i].Title + ". " + items[i].Abstract);
// }
// LemmatizeEn lem = new LemmatizeEn();
// var EnText = lem.lemmatizeEnglish(englishtext);
// CommandLineOption ldaoption = new CommandLineOption();
// ldaoption.topics = (int)Math.Ceiling(System.Math.Sqrt(EnText.Length));
// double normolK = 200;
// ldaoption.alpha = ldaoption.topics / normolK;
// ldaoption.beta = 0.5;
// ldaoption.savestep = 500;
// ldaoption.niters = 500;
// ldaoption.twords = 10;
// try
// {
// LDAGibbsSampling model = new LDAGibbsSampling();
// Corpora cor = new Corpora();
// cor.LoadDataFile(EnText);
// var lda = model.TrainNewModel(cor, ldaoption);
// for (int k = 0; k < lda.K; k++)
// {
// var wordsProbsList = new Dictionary<int, double>();
// for (int w = 0; w < lda.V; w++)
// {
// wordsProbsList.Add(w, lda.phi[k][w]);
// }
// var wordsProbsListOrdered = wordsProbsList.OrderBy(e => -e.Value).ToList();
// string word = "";
// List<double> TopicWordsProbability = new List<double>(); ;
// for (int i = 0; i < 10; i++)
// {
// word += cor.GetStringByID(wordsProbsListOrdered[i].Key) + "; ";
// TopicWordsProbability.Add(wordsProbsListOrdered[i].Value);
// }
// var DisTimeTopic = new DisTimeTopic();
// DisTimeTopic.Language = kv.Key.Language;
// DisTimeTopic.DomainName = kv.Key.DomainName;
// DisTimeTopic.Year = kv.Key.PublishTime;
// DisTimeTopic.Topic = "Topic " + k.ToString();
// DisTimeTopic.TopicWord = word;
// DisTimeTopic.TopicWordProbability = TopicWordsProbability;
// DisTimeTopic.Documentlist = lda.theta.ToString();
// DisTimeTopic.Parameter = "Aplha: " + lda.alpha.ToString() + ";" + "Beta: " + lda.beta.ToString() + ";" + "文档数: " + lda.M.ToString() + ";" + "主题数: " + lda.K.ToString() + ";" + "词袋数: " + lda.V.ToString() + ";" + "迭代次数:" + ldaoption.niters.ToString() + ";" + "LogLikelihood= " + lda.LogLikelihood.ToString();
// conn.Insert(DisTimeTopic);
// DisTimeTopic.RemoveAllOnlyProperties();
// rtns.Results.Add(DisTimeTopic);
// }
// }
// catch (Exception ex)
// {
// Console.WriteLine(ex.StackTrace);
// Console.WriteLine(ex.Message);
// }
// }
// if (kv.Key.Language == "中文")
// {
// for (var i = 0; i < items.Count(); i++)
// {
// chinesetext.Add(items[i].Title + "。" + items[i].Abstract);
// }
// ChinesePreprocessing pre = new ChinesePreprocessing();
// var CnText = pre.ChineseWordSegmentation(chinesetext);
// CommandLineOption ldaoption = new CommandLineOption();
// ldaoption.topics = (int)Math.Ceiling(System.Math.Sqrt(CnText.Length));
// double normolK = 200;
// ldaoption.alpha = ldaoption.topics / normolK;
// ldaoption.beta = 0.5;
// ldaoption.savestep = 500;
// ldaoption.niters = 500;
// ldaoption.twords = 10;
// try
// {
// LDAGibbsSampling model = new LDAGibbsSampling();
// Corpora cor = new Corpora();
// cor.LoadDataFile(CnText);
// var lda = model.TrainNewModel(cor, ldaoption);
// for (int k = 0; k < lda.K; k++)
// {
// var wordsProbsList = new Dictionary<int, double>();
// for (int w = 0; w < lda.V; w++)
// {
// wordsProbsList.Add(w, lda.phi[k][w]);
// }
// var wordsProbsListOrdered = wordsProbsList.OrderBy(e => -e.Value).ToList();
// string word = "";
// List<double> TopicWordsProbability = new List<double>(); ;
// for (int i = 0; i < 10; i++)
// {
// word += cor.GetStringByID(wordsProbsListOrdered[i].Key) + "; ";
// TopicWordsProbability.Add(wordsProbsListOrdered[i].Value);
// }
// var DisTimeTopic = new DisTimeTopic();
// DisTimeTopic.Language = kv.Key.Language;
// DisTimeTopic.DomainName = kv.Key.DomainName;
// DisTimeTopic.Year = kv.Key.PublishTime;
// DisTimeTopic.Topic = "Topic " + k.ToString();
// DisTimeTopic.TopicWord = word;
// DisTimeTopic.TopicWordProbability = TopicWordsProbability;
// DisTimeTopic.Documentlist = lda.theta.ToString();
// DisTimeTopic.Parameter = "Aplha: " + lda.alpha.ToString() + ";" + "Beta: " + lda.beta.ToString() + ";" + "文档数: " + lda.M.ToString() + ";" + "主题数: " + lda.K.ToString() + ";" + "词袋数: " + lda.V.ToString() + ";" + "迭代次数:" + ldaoption.niters.ToString() + ";" + "LogLikelihood= " + lda.LogLikelihood.ToString();
// conn.Insert(DisTimeTopic);
// DisTimeTopic.RemoveAllOnlyProperties();
// rtns.Results.Add(DisTimeTopic);
// }
// }
// catch (Exception ex)
// {
// Console.WriteLine(ex.StackTrace);
// Console.WriteLine(ex.Message);
// }
// }
// }
// rtns.Total = rtns.Results.Count();
// return rtns;
//}
}
[
Api
(
Description
=
"主题演化分布"
)]
public
class
DisTopicEvolutionAnalysing
:
RestfulExecution
<
DisTopicEvolution
>
{
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
var
rtns
=
new
RestfulQueryResponse
<
DisTopicEvolution
>();
rtns
.
Results
=
new
List
<
DisTopicEvolution
>();
return
rtns
;
}
}
}
}
Src/Tranforms/RestfulDistribution.cs
View file @
51a59d4b
...
@@ -78,24 +78,59 @@ namespace Njust.Pdf.Analysis.Tranforms
...
@@ -78,24 +78,59 @@ namespace Njust.Pdf.Analysis.Tranforms
[
Api
(
Description
=
"文献年份分布查询"
)]
[
Api
(
Description
=
"文献年份分布查询"
)]
public
class
DisTrendDistributed
:
RestfulExecution
<
DisTrend
>
public
class
DisTrendDistributed
:
RestfulExecution
<
DisTrend
>
{
{
#
region
QueryArgs
public
virtual
int
?
Skip
{
get
;
set
;
}
public
virtual
int
?
Take
{
get
;
set
;
}
public
virtual
string
OrderBy
{
get
;
set
;
}
public
string
OrderByDesc
{
get
;
set
;
}
public
virtual
string
Include
{
get
;
set
;
}
public
virtual
string
Fields
{
get
;
set
;
}
public
string
QueryKeys
{
get
;
set
;
}
public
string
QueryValues
{
get
;
set
;
}
#
endregion
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
{
var
rtns
=
new
RestfulQueryResponse
<
DisTrend
>();
var
rtns
=
new
RestfulQueryResponse
<
DisTrend
>();
rtns
.
Results
=
new
List
<
DisTrend
>();
rtns
.
Results
=
new
List
<
DisTrend
>();
for
(
var
i
=
0
;
i
<
20
;
i
++)
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
DisTrend
>();
{
var
dynamicParams
=
Request
.
GetRequestParams
();
var
disTrend
=
new
DisTrend
();
var
autoQuery
=
Request
.
TryResolve
<
IAutoQueryDb
>();
disTrend
.
Language
=
"中文"
;
autoQuery
.
IncludeTotal
=
true
;
disTrend
.
DomainName
=
"航空发动机"
;
var
request
=
new
RestfulQuery
<
DisTrend
>();
if
(
i
%
2
==
0
)
disTrend
.
DomainName
=
"隐身技术"
;
request
=
request
.
PopulateWith
(
this
);
disTrend
.
Year
=
$"
{
2020
+
i
}
"
;
var
sqlExpress
=
autoQuery
.
CreateQuery
(
Request
,
conn
,
request
,
dynamicParams
);
var
disTrends
=
autoQuery
.
Execute
(
Request
,
conn
,
request
,
sqlExpress
);
disTrend
.
Count
=
i
*
3
;
rtns
.
Results
.
Add
(
disTrend
);
rtns
.
Results
.
AddRange
(
disTrends
.
Results
);
}
rtns
.
Total
=
rtns
.
Results
.
Count
();
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
return
rtns
;
//var rtns = new RestfulQueryResponse<DisTrend>();
//rtns.Results = new List<DisTrend>();
//for (var i = 0; i < 20; i++)
//{
// var disTrend = new DisTrend();
// disTrend.Language = "中文";
// disTrend.DomainName = "航空发动机";
// if (i % 2 == 0) disTrend.DomainName = "隐身技术";
// disTrend.Year = $"{2020 + i}";
// disTrend.Count = i * 3;
// rtns.Results.Add(disTrend);
//}
//rtns.Total = rtns.Results.Count();
//return rtns;
}
}
}
}
...
@@ -156,241 +191,475 @@ namespace Njust.Pdf.Analysis.Tranforms
...
@@ -156,241 +191,475 @@ namespace Njust.Pdf.Analysis.Tranforms
[
Api
(
Description
=
"机构分布查询"
)]
[
Api
(
Description
=
"机构分布查询"
)]
public
class
DisOrganDistributed
:
RestfulExecution
<
DisOrgan
>
public
class
DisOrganDistributed
:
RestfulExecution
<
DisOrgan
>
{
{
#
region
QueryArgs
public
virtual
int
?
Skip
{
get
;
set
;
}
public
virtual
int
?
Take
{
get
;
set
;
}
public
virtual
string
OrderBy
{
get
;
set
;
}
public
string
OrderByDesc
{
get
;
set
;
}
public
virtual
string
Include
{
get
;
set
;
}
public
virtual
string
Fields
{
get
;
set
;
}
public
string
QueryKeys
{
get
;
set
;
}
public
string
QueryValues
{
get
;
set
;
}
#
endregion
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
{
var
rtns
=
new
RestfulQueryResponse
<
DisOrgan
>();
var
rtns
=
new
RestfulQueryResponse
<
DisOrgan
>();
rtns
.
Results
=
new
List
<
DisOrgan
>();
rtns
.
Results
=
new
List
<
DisOrgan
>();
for
(
var
i
=
0
;
i
<
20
;
i
++)
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
DisOrgan
>();
{
var
dynamicParams
=
Request
.
GetRequestParams
();
var
disOrgran
=
new
DisOrgan
();
var
autoQuery
=
Request
.
TryResolve
<
IAutoQueryDb
>();
disOrgran
.
Language
=
"中文"
;
autoQuery
.
IncludeTotal
=
true
;
disOrgran
.
DomainName
=
"航空发动机"
;
var
request
=
new
RestfulQuery
<
DisOrgan
>();
if
(
i
%
2
==
0
)
disOrgran
.
DomainName
=
"隐身技术"
;
request
=
request
.
PopulateWith
(
this
);
disOrgran
.
Year
=
$"
{
2020
+
i
}
"
;
var
sqlExpress
=
autoQuery
.
CreateQuery
(
Request
,
conn
,
request
,
dynamicParams
);
disOrgran
.
Organ
=
$"机构
{
i
}
"
;
var
disOrgans
=
autoQuery
.
Execute
(
Request
,
conn
,
request
,
sqlExpress
);
disOrgran
.
Count
=
i
*
3
;
rtns
.
Results
.
Add
(
disOrgran
);
rtns
.
Results
.
AddRange
(
disOrgans
.
Results
);
}
rtns
.
Total
=
rtns
.
Results
.
Count
();
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
return
rtns
;
// var rtns = new RestfulQueryResponse<DisOrgan>();
// rtns.Results = new List<DisOrgan>();
// for (var i = 0; i < 20; i++)
// {
// var disOrgran = new DisOrgan();
// disOrgran.Language = "中文";
// disOrgran.DomainName = "航空发动机";
// if (i % 2 == 0) disOrgran.DomainName = "隐身技术";
// disOrgran.Year = $"{2020 + i}";
// disOrgran.Organ = $"机构{i}";
// disOrgran.Count = i * 3;
// rtns.Results.Add(disOrgran);
// }
// rtns.Total = rtns.Results.Count();
// return rtns;
//}
}
}
}
}
[
Api
(
Description
=
"机构合作分布查询"
)]
[
Api
(
Description
=
"机构合作分布查询"
)]
public
class
DisCoOrg
ranDistributed
:
RestfulExecution
<
DisCoOrgr
an
>
public
class
DisCoOrg
anDistributed
:
RestfulExecution
<
DisCoOrg
an
>
{
{
#
region
QueryArgs
public
virtual
int
?
Skip
{
get
;
set
;
}
public
virtual
int
?
Take
{
get
;
set
;
}
public
virtual
string
OrderBy
{
get
;
set
;
}
public
string
OrderByDesc
{
get
;
set
;
}
public
virtual
string
Include
{
get
;
set
;
}
public
virtual
string
Fields
{
get
;
set
;
}
public
string
QueryKeys
{
get
;
set
;
}
public
string
QueryValues
{
get
;
set
;
}
#
endregion
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
{
var
rtns
=
new
RestfulQueryResponse
<
DisCoOrg
r
an
>();
var
rtns
=
new
RestfulQueryResponse
<
DisCoOrgan
>();
rtns
.
Results
=
new
List
<
DisCoOrg
r
an
>();
rtns
.
Results
=
new
List
<
DisCoOrgan
>();
for
(
var
i
=
0
;
i
<
20
;
i
++)
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
DisCoOrgan
>();
{
var
dynamicParams
=
Request
.
GetRequestParams
();
var
disCoOrgran
=
new
DisCoOrgran
();
var
autoQuery
=
Request
.
TryResolve
<
IAutoQueryDb
>();
disCoOrgran
.
Language
=
"中文"
;
autoQuery
.
IncludeTotal
=
true
;
disCoOrgran
.
DomainName
=
"航空发动机"
;
var
request
=
new
RestfulQuery
<
DisCoOrgan
>();
if
(
i
%
2
==
0
)
disCoOrgran
.
DomainName
=
"隐身技术"
;
request
=
request
.
PopulateWith
(
this
);
disCoOrgran
.
Organ1
=
$"机构
{
i
}
"
;
var
sqlExpress
=
autoQuery
.
CreateQuery
(
Request
,
conn
,
request
,
dynamicParams
);
disCoOrgran
.
Organ2
=
$"机构
{
i
+
1
}
"
;
var
disCoOrgrans
=
autoQuery
.
Execute
(
Request
,
conn
,
request
,
sqlExpress
);
disCoOrgran
.
Count
=
i
*
2
;
rtns
.
Results
.
AddRange
(
disCoOrgrans
.
Results
);
rtns
.
Results
.
Add
(
disCoOrgran
);
}
rtns
.
Total
=
rtns
.
Results
.
Count
();
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
return
rtns
;
//var rtns = new RestfulQueryResponse<DisCoOrgran>();
//rtns.Results = new List<DisCoOrgran>();
//for (var i = 0; i < 20; i++)
//{
// var disCoOrgran = new DisCoOrgran();
// disCoOrgran.Language = "中文";
// disCoOrgran.DomainName = "航空发动机";
// if (i % 2 == 0) disCoOrgran.DomainName = "隐身技术";
// disCoOrgran.Organ1 = $"机构{i}";
// disCoOrgran.Organ2 = $"机构{i + 1}";
// disCoOrgran.Count = i * 2;
// rtns.Results.Add(disCoOrgran);
//}
//rtns.Total = rtns.Results.Count();
//return rtns;
}
}
}
}
[
Api
(
Description
=
"国家分布查询"
)]
[
Api
(
Description
=
"国家分布查询"
)]
public
class
DisCountryDistributed
:
RestfulExecution
<
DisCountry
>
public
class
DisCountryDistributed
:
RestfulExecution
<
DisCountry
>
{
{
#
region
QueryArgs
public
virtual
int
?
Skip
{
get
;
set
;
}
public
virtual
int
?
Take
{
get
;
set
;
}
public
virtual
string
OrderBy
{
get
;
set
;
}
public
string
OrderByDesc
{
get
;
set
;
}
public
virtual
string
Include
{
get
;
set
;
}
public
virtual
string
Fields
{
get
;
set
;
}
public
string
QueryKeys
{
get
;
set
;
}
public
string
QueryValues
{
get
;
set
;
}
#
endregion
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
{
var
rtns
=
new
RestfulQueryResponse
<
DisCountry
>();
var
rtns
=
new
RestfulQueryResponse
<
DisCountry
>();
rtns
.
Results
=
new
List
<
DisCountry
>();
rtns
.
Results
=
new
List
<
DisCountry
>();
for
(
var
i
=
0
;
i
<
20
;
i
++)
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
DisCountry
>();
{
var
dynamicParams
=
Request
.
GetRequestParams
();
var
disCountry
=
new
DisCountry
();
var
autoQuery
=
Request
.
TryResolve
<
IAutoQueryDb
>();
disCountry
.
Language
=
"中文"
;
autoQuery
.
IncludeTotal
=
true
;
disCountry
.
DomainName
=
"航空发动机"
;
var
request
=
new
RestfulQuery
<
DisCountry
>();
if
(
i
%
2
==
0
)
disCountry
.
DomainName
=
"隐身技术"
;
request
=
request
.
PopulateWith
(
this
);
disCountry
.
Year
=
$"
{
2020
+
i
}
"
;
var
sqlExpress
=
autoQuery
.
CreateQuery
(
Request
,
conn
,
request
,
dynamicParams
);
disCountry
.
Country
=
$"国家
{
i
}
"
;
var
disCountrys
=
autoQuery
.
Execute
(
Request
,
conn
,
request
,
sqlExpress
);
disCountry
.
Count
=
i
*
3
;
rtns
.
Results
.
Add
(
disCountry
);
}
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
}
}
[
Api
(
Description
=
"国家合作分布查询"
)]
public
class
DisCoCountryDistributed
:
RestfulExecution
<
DisCoCountry
>
{
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
var
rtns
=
new
RestfulQueryResponse
<
DisCoCountry
>();
rtns
.
Results
=
new
List
<
DisCoCountry
>();
for
(
var
i
=
0
;
i
<
20
;
i
++)
rtns
.
Results
.
AddRange
(
disCountrys
.
Results
);
{
var
disCoCountry
=
new
DisCoCountry
();
disCoCountry
.
Language
=
"中文"
;
disCoCountry
.
DomainName
=
"航空发动机"
;
if
(
i
%
2
==
0
)
disCoCountry
.
DomainName
=
"隐身技术"
;
disCoCountry
.
Country1
=
$"国家
{
i
}
"
;
disCoCountry
.
Country2
=
$"国家
{
i
+
1
}
"
;
disCoCountry
.
Count
=
i
*
3
;
rtns
.
Results
.
Add
(
disCoCountry
);
}
rtns
.
Total
=
rtns
.
Results
.
Count
();
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
return
rtns
;
//var rtns = new RestfulQueryResponse<DisCountry>();
//rtns.Results = new List<DisCountry>();
//for (var i = 0; i < 20; i++)
//{
// var disCountry = new DisCountry();
// disCountry.Language = "中文";
// disCountry.DomainName = "航空发动机";
// if (i % 2 == 0) disCountry.DomainName = "隐身技术";
// disCountry.Year = $"{2020 + i}";
// disCountry.Country = $"国家{i}";
// disCountry.Count = i * 3;
// rtns.Results.Add(disCountry);
//}
//rtns.Total = rtns.Results.Count();
//return rtns;
}
}
}
}
[
Api
(
Description
=
"基金分布查询"
)]
//[Api(Description = "国家合作分布查询")]
public
class
DisFundDistributed
:
RestfulExecution
<
DisFund
>
//public class DisCoCountryDistributed : RestfulExecution<DisCoCountry>
{
//{
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
// public override object OnExecution(IRequest req, IResponse res)
{
// {
var
rtns
=
new
RestfulQueryResponse
<
DisFund
>();
// var rtns = new RestfulQueryResponse<DisCoCountry>();
rtns
.
Results
=
new
List
<
DisFund
>();
// rtns.Results = new List<DisCoCountry>();
// for (var i = 0; i < 20; i++)
// {
// var disCoCountry = new DisCoCountry();
// disCoCountry.Language = "中文";
// disCoCountry.DomainName = "航空发动机";
// if (i % 2 == 0) disCoCountry.DomainName = "隐身技术";
// disCoCountry.Country1 = $"国家{i}";
// disCoCountry.Country2 = $"国家{i + 1}";
// disCoCountry.Count = i * 3;
// rtns.Results.Add(disCoCountry);
// }
// rtns.Total = rtns.Results.Count();
// return rtns;
// }
//}
for
(
var
i
=
0
;
i
<
20
;
i
++)
//[Api(Description = "基金分布查询")]
{
//public class DisFundDistributed : RestfulExecution<DisFund>
var
disFund
=
new
DisFund
();
//{
disFund
.
Language
=
"中文"
;
// public override object OnExecution(IRequest req, IResponse res)
disFund
.
DomainName
=
"航空发动机"
;
// {
if
(
i
%
2
==
0
)
disFund
.
DomainName
=
"隐身技术"
;
// var rtns = new RestfulQueryResponse<DisFund>();
disFund
.
Year
=
$"
{
2020
+
i
}
"
;
// rtns.Results = new List<DisFund>();
disFund
.
Fund
=
$"基金
{
i
}
"
;
disFund
.
Count
=
i
*
3
;
// for (var i = 0; i < 20; i++)
rtns
.
Results
.
Add
(
disFund
);
// {
}
// var disFund = new DisFund();
rtns
.
Total
=
rtns
.
Results
.
Count
();
// disFund.Language = "中文";
return
rtns
;
// disFund.DomainName = "航空发动机";
}
// if (i % 2 == 0) disFund.DomainName = "隐身技术";
}
// disFund.Year = $"{2020 + i}";
// disFund.Fund = $"基金{i}";
// disFund.Count = i * 3;
// rtns.Results.Add(disFund);
// }
// rtns.Total = rtns.Results.Count();
// return rtns;
// }
//}
[
Api
(
Description
=
"来源分布查询"
)]
[
Api
(
Description
=
"来源分布查询"
)]
public
class
DisSourceDistributed
:
RestfulExecution
<
DisSource
>
public
class
DisSourceDistributed
:
RestfulExecution
<
DisSource
>
{
{
#
region
QueryArgs
public
virtual
int
?
Skip
{
get
;
set
;
}
public
virtual
int
?
Take
{
get
;
set
;
}
public
virtual
string
OrderBy
{
get
;
set
;
}
public
string
OrderByDesc
{
get
;
set
;
}
public
virtual
string
Include
{
get
;
set
;
}
public
virtual
string
Fields
{
get
;
set
;
}
public
string
QueryKeys
{
get
;
set
;
}
public
string
QueryValues
{
get
;
set
;
}
#
endregion
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
{
var
rtns
=
new
RestfulQueryResponse
<
DisSource
>();
var
rtns
=
new
RestfulQueryResponse
<
DisSource
>();
rtns
.
Results
=
new
List
<
DisSource
>();
rtns
.
Results
=
new
List
<
DisSource
>();
for
(
var
i
=
0
;
i
<
20
;
i
++)
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
DisSource
>();
{
var
dynamicParams
=
Request
.
GetRequestParams
();
var
disSource
=
new
DisSource
();
var
autoQuery
=
Request
.
TryResolve
<
IAutoQueryDb
>();
disSource
.
Language
=
"中文"
;
autoQuery
.
IncludeTotal
=
true
;
disSource
.
DomainName
=
"航空发动机"
;
var
request
=
new
RestfulQuery
<
DisSource
>();
if
(
i
%
2
==
0
)
disSource
.
DomainName
=
"隐身技术"
;
request
=
request
.
PopulateWith
(
this
);
disSource
.
Year
=
$"
{
2020
+
i
}
"
;
var
sqlExpress
=
autoQuery
.
CreateQuery
(
Request
,
conn
,
request
,
dynamicParams
);
disSource
.
Source
=
$"机构
{
i
}
"
;
var
disSources
=
autoQuery
.
Execute
(
Request
,
conn
,
request
,
sqlExpress
);
disSource
.
Count
=
i
*
3
;
rtns
.
Results
.
Add
(
disSource
);
rtns
.
Results
.
AddRange
(
disSources
.
Results
);
}
rtns
.
Total
=
rtns
.
Results
.
Count
();
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
return
rtns
;
//var rtns = new RestfulQueryResponse<DisSource>();
//rtns.Results = new List<DisSource>();
//for (var i = 0; i < 20; i++)
//{
// var disSource = new DisSource();
// disSource.Language = "中文";
// disSource.DomainName = "航空发动机";
// if (i % 2 == 0) disSource.DomainName = "隐身技术";
// disSource.Year = $"{2020 + i}";
// disSource.Source = $"机构{i}";
// disSource.Count = i * 3;
// rtns.Results.Add(disSource);
//}
//rtns.Total = rtns.Results.Count();
//return rtns;
}
}
}
}
[
Api
(
Description
=
"关键词共现查询"
)]
[
Api
(
Description
=
"关键词共现查询"
)]
public
class
DisCoKeywordDistributed
:
RestfulExecution
<
DisCoKeyword
>
public
class
DisCoKeywordDistributed
:
RestfulExecution
<
DisCoKeyword
>
{
{
#
region
QueryArgs
public
virtual
int
?
Skip
{
get
;
set
;
}
public
virtual
int
?
Take
{
get
;
set
;
}
public
virtual
string
OrderBy
{
get
;
set
;
}
public
string
OrderByDesc
{
get
;
set
;
}
public
virtual
string
Include
{
get
;
set
;
}
public
virtual
string
Fields
{
get
;
set
;
}
public
string
QueryKeys
{
get
;
set
;
}
public
string
QueryValues
{
get
;
set
;
}
#
endregion
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
{
var
rtns
=
new
RestfulQueryResponse
<
DisCoKeyword
>();
var
rtns
=
new
RestfulQueryResponse
<
DisCoKeyword
>();
rtns
.
Results
=
new
List
<
DisCoKeyword
>();
rtns
.
Results
=
new
List
<
DisCoKeyword
>();
for
(
var
i
=
0
;
i
<
20
;
i
++)
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
DisCoKeyword
>();
{
var
dynamicParams
=
Request
.
GetRequestParams
();
var
disCoKeyword
=
new
DisCoKeyword
();
var
autoQuery
=
Request
.
TryResolve
<
IAutoQueryDb
>();
disCoKeyword
.
Language
=
"中文"
;
autoQuery
.
IncludeTotal
=
true
;
disCoKeyword
.
DomainName
=
"航空发动机"
;
var
request
=
new
RestfulQuery
<
DisCoKeyword
>();
if
(
i
%
2
==
0
)
disCoKeyword
.
DomainName
=
"隐身技术"
;
request
=
request
.
PopulateWith
(
this
);
disCoKeyword
.
KeyWord1
=
$"关键词
{
i
}
"
;
var
sqlExpress
=
autoQuery
.
CreateQuery
(
Request
,
conn
,
request
,
dynamicParams
);
disCoKeyword
.
KeyWord2
=
$"关键词
{
i
+
1
}
"
;
var
disCoKeywords
=
autoQuery
.
Execute
(
Request
,
conn
,
request
,
sqlExpress
);
disCoKeyword
.
Count
=
i
*
3
;
rtns
.
Results
.
Add
(
disCoKeyword
);
rtns
.
Results
.
AddRange
(
disCoKeywords
.
Results
);
}
rtns
.
Total
=
rtns
.
Results
.
Count
();
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
return
rtns
;
//var rtns = new RestfulQueryResponse<DisCoKeyword>();
//rtns.Results = new List<DisCoKeyword>();
//for (var i = 0; i < 20; i++)
//{
// var disCoKeyword = new DisCoKeyword();
// disCoKeyword.Language = "中文";
// disCoKeyword.DomainName = "航空发动机";
// if (i % 2 == 0) disCoKeyword.DomainName = "隐身技术";
// disCoKeyword.KeyWord1 = $"关键词{i}";
// disCoKeyword.KeyWord2 = $"关键词{i + 1}";
// disCoKeyword.Count = i * 3;
// rtns.Results.Add(disCoKeyword);
//}
//rtns.Total = rtns.Results.Count();
//return rtns;
}
}
}
}
[
Api
(
Description
=
"时序主题分布查询"
)]
[
Api
(
Description
=
"时序主题分布查询"
)]
public
class
DisTimeTopicDistributed
:
RestfulExecution
<
DisTimeTopic
>
public
class
DisTimeTopicDistributed
:
RestfulExecution
<
DisTimeTopic
>
{
{
#
region
QueryArgs
public
virtual
int
?
Skip
{
get
;
set
;
}
public
virtual
int
?
Take
{
get
;
set
;
}
public
virtual
string
OrderBy
{
get
;
set
;
}
public
string
OrderByDesc
{
get
;
set
;
}
public
virtual
string
Include
{
get
;
set
;
}
public
virtual
string
Fields
{
get
;
set
;
}
public
string
QueryKeys
{
get
;
set
;
}
public
string
QueryValues
{
get
;
set
;
}
#
endregion
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
{
var
rtns
=
new
RestfulQueryResponse
<
DisTimeTopic
>();
var
rtns
=
new
RestfulQueryResponse
<
DisTimeTopic
>();
rtns
.
Results
=
new
List
<
DisTimeTopic
>();
rtns
.
Results
=
new
List
<
DisTimeTopic
>();
for
(
var
i
=
0
;
i
<
10
;
i
++)
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
DisTimeTopic
>();
{
var
dynamicParams
=
Request
.
GetRequestParams
();
for
(
var
j
=
0
;
j
<
6
;
j
++)
var
autoQuery
=
Request
.
TryResolve
<
IAutoQueryDb
>();
{
autoQuery
.
IncludeTotal
=
true
;
var
disTimeTopic
=
new
DisTimeTopic
();
var
request
=
new
RestfulQuery
<
DisTimeTopic
>();
disTimeTopic
.
Language
=
"中文"
;
request
=
request
.
PopulateWith
(
this
);
disTimeTopic
.
DomainName
=
"航空发动机"
;
var
sqlExpress
=
autoQuery
.
CreateQuery
(
Request
,
conn
,
request
,
dynamicParams
);
if
(
j
%
2
==
0
)
disTimeTopic
.
DomainName
=
"隐身技术"
;
var
disTimeTopics
=
autoQuery
.
Execute
(
Request
,
conn
,
request
,
sqlExpress
);
disTimeTopic
.
Year
=
$"
{
2020
+
i
}
"
;
disTimeTopic
.
Topic
=
$"Topic
{
j
}
"
;
disTimeTopic
.
TopicWord
=
""
;
disTimeTopic
.
TopicWordProbability
=
""
;
for
(
var
x
=
0
;
x
<
10
;
x
++)
{
disTimeTopic
.
TopicWord
=
disTimeTopic
.
TopicWord
+
$"主题词
{
x
}
,"
;
disTimeTopic
.
TopicWordProbability
=
disTimeTopic
.
TopicWordProbability
+
$"
{
1
-
x
*
0.05
}
,"
;
}
rtns
.
Results
.
Add
(
disTimeTopic
);
}
}
rtns
.
Results
.
AddRange
(
disTimeTopics
.
Results
);
rtns
.
Total
=
rtns
.
Results
.
Count
();
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
return
rtns
;
//var rtns = new RestfulQueryResponse<DisTimeTopic>();
//rtns.Results = new List<DisTimeTopic>();
//for (var i = 0; i < 10; i++)
//{
// for (var j = 0; j < 6; j++)
// {
// var disTimeTopic = new DisTimeTopic();
// disTimeTopic.Language = "中文";
// disTimeTopic.DomainName = "航空发动机";
// if (j % 2 == 0) disTimeTopic.DomainName = "隐身技术";
// disTimeTopic.Year = $"{2020 + i}";
// disTimeTopic.Topic = $"Topic{j}";
// disTimeTopic.TopicWord = "";
// disTimeTopic.TopicWordProbability = "";
// for (var x = 0; x < 10; x++)
// {
// disTimeTopic.TopicWord = disTimeTopic.TopicWord + $"主题词{x},";
// disTimeTopic.TopicWordProbability = disTimeTopic.TopicWordProbability + $"{1 - x * 0.05},";
// }
// rtns.Results.Add(disTimeTopic);
// }
//}
//rtns.Total = rtns.Results.Count();
//return rtns;
}
}
}
}
[
Api
(
Description
=
"主题演化分布查询"
)]
[
Api
(
Description
=
"主题演化分布查询"
)]
public
class
DisTopicEvolutionDistributed
:
RestfulExecution
<
DisTopicEvolution
>
public
class
DisTopicEvolutionDistributed
:
RestfulExecution
<
DisTopicEvolution
>
{
{
#
region
QueryArgs
public
virtual
int
?
Skip
{
get
;
set
;
}
public
virtual
int
?
Take
{
get
;
set
;
}
public
virtual
string
OrderBy
{
get
;
set
;
}
public
string
OrderByDesc
{
get
;
set
;
}
public
virtual
string
Include
{
get
;
set
;
}
public
virtual
string
Fields
{
get
;
set
;
}
public
string
QueryKeys
{
get
;
set
;
}
public
string
QueryValues
{
get
;
set
;
}
#
endregion
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
public
override
object
OnExecution
(
IRequest
req
,
IResponse
res
)
{
{
var
rtns
=
new
RestfulQueryResponse
<
DisTopicEvolution
>();
var
rtns
=
new
RestfulQueryResponse
<
DisTopicEvolution
>();
rtns
.
Results
=
new
List
<
DisTopicEvolution
>();
rtns
.
Results
=
new
List
<
DisTopicEvolution
>();
for
(
var
i
=
0
;
i
<
10
;
i
++)
var
conn
=
KiviiContext
.
GetOpenedDbConnection
<
DisTopicEvolution
>();
{
var
dynamicParams
=
Request
.
GetRequestParams
();
for
(
var
j
=
0
;
j
<
6
;
j
++)
var
autoQuery
=
Request
.
TryResolve
<
IAutoQueryDb
>();
{
autoQuery
.
IncludeTotal
=
true
;
var
disTopicEvolution
=
new
DisTopicEvolution
();
var
request
=
new
RestfulQuery
<
DisTopicEvolution
>();
disTopicEvolution
.
Language
=
"中文"
;
request
=
request
.
PopulateWith
(
this
);
disTopicEvolution
.
DomainName
=
"航空发动机"
;
var
sqlExpress
=
autoQuery
.
CreateQuery
(
Request
,
conn
,
request
,
dynamicParams
);
if
(
j
%
2
==
0
)
disTopicEvolution
.
DomainName
=
"隐身技术"
;
var
disTopicEvolutions
=
autoQuery
.
Execute
(
Request
,
conn
,
request
,
sqlExpress
);
disTopicEvolution
.
SourceYear
=
$"
{
2020
+
i
}
"
;
disTopicEvolution
.
TargetYear
=
$"
{
2021
+
i
}
"
;
disTopicEvolution
.
SourceTopic
=
$"Topic
{
j
}
"
;
disTopicEvolution
.
TargeTopic
=
$"Topic
{
j
+
1
}
"
;
disTopicEvolution
.
SourceTopicWord
=
""
;
disTopicEvolution
.
TargetTopicWord
=
""
;
for
(
var
x
=
0
;
x
<
3
;
x
++)
{
disTopicEvolution
.
SourceTopicWord
=
disTopicEvolution
.
SourceTopicWord
+
$"主题词
{
x
}
,"
;
disTopicEvolution
.
TargetTopicWord
=
disTopicEvolution
.
TargetTopicWord
+
$"主题词
{
x
}
,"
;
}
rtns
.
Results
.
Add
(
disTopicEvolution
);
}
}
rtns
.
Results
.
AddRange
(
disTopicEvolutions
.
Results
);
rtns
.
Total
=
rtns
.
Results
.
Count
();
rtns
.
Total
=
rtns
.
Results
.
Count
();
return
rtns
;
return
rtns
;
//var rtns = new RestfulQueryResponse<DisTopicEvolution>();
//rtns.Results = new List<DisTopicEvolution>();
//for (var i = 0; i < 10; i++)
//{
// for (var j = 0; j < 6; j++)
// {
// var disTopicEvolution = new DisTopicEvolution();
// disTopicEvolution.Language = "中文";
// disTopicEvolution.DomainName = "航空发动机";
// if (j % 2 == 0) disTopicEvolution.DomainName = "隐身技术";
// disTopicEvolution.SourceYear = $"{2020 + i}";
// disTopicEvolution.TargetYear = $"{2021 + i}";
// disTopicEvolution.SourceTopic = $"Topic{j}";
// disTopicEvolution.TargeTopic = $"Topic{j + 1}";
// disTopicEvolution.SourceTopicWord = "";
// disTopicEvolution.TargetTopicWord = "";
// for (var x = 0; x < 3; x++)
// {
// disTopicEvolution.SourceTopicWord = disTopicEvolution.SourceTopicWord + $"主题词{x},";
// disTopicEvolution.TargetTopicWord = disTopicEvolution.TargetTopicWord + $"主题词{x},";
// }
// rtns.Results.Add(disTopicEvolution);
// }
//}
//rtns.Total = rtns.Results.Count();
//return rtns;
}
}
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment