提交 aae914ea 编写于 作者: W wizardforcel

2022-01-08 18:34:05

上级 64e5a7bc
......@@ -17,13 +17,13 @@
事件管理还包括确定需要多少沟通、沟通的语气,以及最重要的沟通频率。
在本章中,我们将通过创建 C#解决方案来自动化事件管理,该解决方案包括期望管理和成功关闭任何报告的事件所需的沟通循环。大多数帮助台和客户关系管理工具并不关注期望管理或沟通的语气和频率,但是当这些工具直接包含在您的项目或产品中时,它们应该是有用的,并且它们将允许您在您公司的产品线中开箱即用地集成这些功能。
在本章中,我们将通过创建 C# 解决方案来自动化事件管理,该解决方案包括期望管理和成功关闭任何报告的事件所需的沟通循环。大多数帮助台和客户关系管理工具并不关注期望管理或沟通的语气和频率,但是当这些工具直接包含在您的项目或产品中时,它们应该是有用的,并且它们将允许您在您公司的产品线中开箱即用地集成这些功能。
客户关系管理是为了管理公司与当前和未来客户的互动而采取的方法。
大多数当前的客户关系管理软件,如 Salesforce 和 Microsoft Dynamics,更侧重于结束销售周期,而不是事件管理本身。尽管大多数客户关系管理软件都包含服务台子集,但我检查过的客户关系管理工具(甚至是那些专门为客户支持而构建的工具,如 Zendesk)都不太重视期望管理和沟通的频率或语气。
我的建议是,你提供一个 C#类,负责管理围绕沟通的期望,以及与任何报告的客户事件相关的沟通频率和语气。该类可以作为项目或产品中的一个可嵌入的、面向小型事件管理的客户关系管理系统,允许客户在产品本身中向您的 CORD 服务台报告问题。
我的建议是,你提供一个 C# 类,负责管理围绕沟通的期望,以及与任何报告的客户事件相关的沟通频率和语气。该类可以作为项目或产品中的一个可嵌入的、面向小型事件管理的客户关系管理系统,允许客户在产品本身中向您的 CORD 服务台报告问题。
表 4 代表了我们的简单可怕的客户关系管理工具将强调的规格。
......@@ -61,7 +61,7 @@
虽然显示的代码示例对于后续操作来说非常直观,但我建议您查看一下优秀的在线文档库[文档](https://azure.microsoft.com/en-us/documentation/services/documentdb/)
根据[表 4](#Table4) 中的规格,我们需要创建一个 C#基类,它应该能够:
根据[表 4](#Table4) 中的规格,我们需要创建一个 C# 基类,它应该能够:
* 允许客户报告事件及其期望(严重性和重要性)。
* 允许客户进行一次或多次交流互动。
......@@ -141,7 +141,7 @@
现在,文档数据库帐户、数据库和集合已经在微软 Azure 上准备好了,接下来您必须安装。为了开始编码,NuGet 的. NET DocumentDB 客户端库调用了`Microsoft.Azure.DocumentDB`
首先,启动 Visual Studio 2015 并创建一个 C#控制台应用程序。模板代码加载后,转到`Tools` > `NuGet Package Manager` > `Manage NuGet Packages`,在`Package Source`下拉控件中选择`nuget.org`。在搜索框中,输入`DocumentDB`,将显示软件包,可供安装。
首先,启动 Visual Studio 2015 并创建一个 C# 控制台应用程序。模板代码加载后,转到`Tools` > `NuGet Package Manager` > `Manage NuGet Packages`,在`Package Source`下拉控件中选择`nuget.org`。在搜索框中,输入`DocumentDB`,将显示软件包,可供安装。
![](img/00014.jpeg)
......@@ -642,7 +642,7 @@ DocumentDB 支持数值字段的基于范围的索引,允许您进行范围查
```
每个特定事件的详细信息都作为一个单独的 JSON 文档存储在 DocumentDB 中,在 C#中,它由`IncidentInfo`类表示。`IncidentInfo`类是密封的,这表明它只是一个数据容器。它可能不包含注释或资源(作为对象数组),也可能包含多个项目。
每个特定事件的详细信息都作为一个单独的 JSON 文档存储在 DocumentDB 中,在 C# 中,它由`IncidentInfo`类表示。`IncidentInfo`类是密封的,这表明它只是一个数据容器。它可能不包含注释或资源(作为对象数组),也可能包含多个项目。
`Comment`对象表示与特定事件相关的注释的实例。`AllocatedResource`对象表示分配给特定事件的资源实例。
......@@ -2832,7 +2832,7 @@ DocumentDB 支持数值字段的基于范围的索引,允许您进行范围查
```
在这一章中,我们已经看到了如何使用 DocumentDB 和 C#来实现一个简单而有效的客户关系管理应用编程接口,您可以根据自己的需求进行建模。
在这一章中,我们已经看到了如何使用 DocumentDB 和 C# 来实现一个简单而有效的客户关系管理应用编程接口,您可以根据自己的需求进行建模。
鉴于其可靠性、稳定性、健壮性和易用性,DocumentDB 是我们的首选。它的应用编程接口很容易理解,只需要很少的文档,并且它非常适合构建一个简单的客户关系管理应用编程接口的概念,这使得我们能够迎合[第 1 章](1.html#_Chapter_1_)中解释的概念。
......
......@@ -26,7 +26,7 @@
使用名为 [ILSpy](http://ilspy.net/) 的免费工具,我们可以深入任何程序集的细节,探索其元数据,并自动将其源代码从 CIL 反编译为其原始的高级代码。NET 语言。Visual Studio 附带了一个 Spy++程序,但是请注意,ILSpy 与非常相似。NET 反射器来自红门软件,使用简单直观。
CIL 代码是程序集的实际可运行部分。而不是将高级的、人类可以理解的语言如 C#编译成机器代码。NET 采取了一个中间步骤,编译器生成位于人类可读代码和机器代码之间的 CIL 代码。CIL 对其他低级语言有些熟悉。
CIL 代码是程序集的实际可运行部分。而不是将高级的、人类可以理解的语言如 C# 编译成机器代码。NET 采取了一个中间步骤,编译器生成位于人类可读代码和机器代码之间的 CIL 代码。CIL 对其他低级语言有些熟悉。
英寸 NET 中,程序集被编译[及时](https://en.wikipedia.org/wiki/Just-in-time_compilation) (JIT),这意味着编译实际上是在程序执行期间完成的,而不是在执行之前。本质上,直到应用程序被执行,实际的机器代码才被生成。那个。NET 运行时负责将 CIL 转换成中央处理器能够理解的操作系统指令。这是有利的,因为代码是为运行它的机器编译的(它实际上可以针对特定的机器进行优化),并且因为只有部分实际运行的代码得到编译。因此,应用程序中未使用的部分将保留在 CIL,直到被执行。
......@@ -445,7 +445,7 @@ ILSpy 不需要安装。它是一个压缩的档案,包含一个可执行文
遵循这个策略将把反射的使用限制在您特别需要的地方。您还将最大限度地提高性能和准确性,同时保持灵活性。
这对于 web (ASP)都是有效的。NET、MVC 和 WebForms)、控制台和用 C#编写的桌面(Windows 窗体和 WPF)应用程序。但是,由于 Windows Store 应用程序是沙箱化的,反射功能受到限制。
这对于 web (ASP)都是有效的。NET、MVC 和 WebForms)、控制台和用 C# 编写的桌面(Windows 窗体和 WPF)应用程序。但是,由于 Windows Store 应用程序是沙箱化的,反射功能受到限制。
不允许访问非公共方法或类型(这是一件好事),也没有从文件系统动态加载可用的程序集。这是因为窗口存储应用程序需要的所有程序集都必须作为包提交给窗口存储。
......
# Succinctly C# 客户成功教程
> 原文:[Syncfusion Succinctly](https://www.syncfusion.com/succinctly-free-ebooks)
>
> 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
>
> 阶段:机翻(1)
>
> 人最大的痛苦就是说一些自己都不相信的话。——燕京学堂鹿会
* [在线阅读](https://scnc.apachecn.org)
* [在线阅读(Gitee)](https://apachecn.gitee.io/doc-template/)
* [ApacheCN 学习资源](http://docs.apachecn.org/)
## 贡献指南
本项目需要校对,欢迎大家提交 Pull Request。
> 请您勇敢地去翻译和改进翻译。虽然我们追求卓越,但我们并不要求您做到十全十美,因此请不要担心因为翻译上犯错——在大部分情况下,我们的服务器已经记录所有的翻译,因此您不必担心会因为您的失误遭到无法挽回的破坏。(改编自维基百科)
## 联系方式
### 负责人
* [飞龙](https://github.com/wizardforcel): 562826179
### 其他
* 在我们的 [apachecn/succinctly-zh](https://github.com/apachecn/succinctly-zh) github 上提 issue.
* 发邮件到 Email: `apachecn@163.com`.
* 在我们的 [组织学习交流群](https://www.apachecn.org/#/docs/join) 中联系群主/管理员即可.
## 下载
### Docker
```
docker pull apachecn0/succinctly-zh
docker run -tid -p <port>:80 apachecn0/succinctly-zh
# 访问 http://localhost:{port} 查看文档
```
### PYPI
```
pip install succinctly-zh
succinctly-zh <port>
# 访问 http://localhost:{port} 查看文档
```
### NPM
```
npm install -g succinctly-zh
succinctly-zh <port>
# 访问 http://localhost:{port} 查看文档
```
## 赞助我们
![](http://data.apachecn.org/img/about/donate.jpg)
# 六、附录 C:`CDocSource`类代码列表
以下代码来自微软提供的“[direct 2 DAP 打印示例(Windows 8.1)](http://code.msdn.microsoft.com/windowsapps/Direct2Dapp-printing-sample-9869f99c#content) ”。我已经修改了格式,以更好地适应这本书的页面;这导致了更难阅读的代码。为了方便起见,此处包含了这段代码,原始代码(可以与微软 Windows 8 示例一起下载)可读性更强。所有评论都是微软的。我只修改了上面提到的格式。它们指的是从中下载代码的示例。
以下代码来自微软提供的“[direct 2 DAP 打印示例(Windows 8.1)](http://code.msdn.microsoft.com/windowsapps/Direct2Dapp-printing-sample-9869f99C# content) ”。我已经修改了格式,以更好地适应这本书的页面;这导致了更难阅读的代码。为了方便起见,此处包含了这段代码,原始代码(可以与微软 Windows 8 示例一起下载)可读性更强。所有评论都是微软的。我只修改了上面提到的格式。它们指的是从中下载代码的示例。
微软提供的示例代码中的类名是 D2DPageRenderer。对于我们的打印应用程序,这应该改为“简单文本渲染器”。我在后面的代码中用绿色突出显示了这一行。我们代码中的主渲染器类被称为 SimpleTextRenderer,因此您还必须将对 PageRenderer 类的所有引用都更改为 SimpleTextRenderer。我用红色突出了这些线条。
......
......@@ -6,4 +6,4 @@
您还将了解数据提取中使用的方法、技术和库,这可以带来有价值的见解,并帮助您成为更好的经理,更有效地运营您的业务,并在商业世界中创造竞争优势。
对于有 C#知识的读者来说,这本书将提供令人兴奋的一瞥,在没有深入分析每个主题的情况下,技术上是可能的。这里介绍的技术,以及提供的清晰、简洁和易于理解的示例,将为理解 C#中数据捕获和提取的可行性提供一个良好的开端。玩得开心!
\ No newline at end of file
对于有 C# 知识的读者来说,这本书将提供令人兴奋的一瞥,在没有深入分析每个主题的情况下,技术上是可能的。这里介绍的技术,以及提供的清晰、简洁和易于理解的示例,将为理解 C# 中数据捕获和提取的可行性提供一个良好的开端。玩得开心!
\ No newline at end of file
......@@ -10,13 +10,13 @@
*表 1:典型的邮件结构*
表 1 描述了一个典型的电子邮件结构,可以使用 C#进行查询。请注意,电子邮件的结构是分层的,一些元素包含在其他元素中。例如,附件属于内容,它是正文的一部分。这种内部结构可能略有不同,但这种分层视图使概念更容易理解。
表 1 描述了一个典型的电子邮件结构,可以使用 C# 进行查询。请注意,电子邮件的结构是分层的,一些元素包含在其他元素中。例如,附件属于内容,它是正文的一部分。这种内部结构可能略有不同,但这种分层视图使概念更容易理解。
考虑到这个结构,我们可以寻找从每个元素中提取数据并使其有意义的方法。我们将在第 1 章后面讨论这个问题。
请记住,这些元素将始终包含数据:标题、内容、收件人、发件人和收件人。这些是必不可少的——没有它们,电子邮件就无法转发。但是,其他电子邮件元素,如抄送、密件抄送、主题、正文、内容和附件,可能不包含数据。
本章将介绍如何连接到 POP3 或 IMAP 邮件服务器,如何从电子邮件中检索、解析和提取数据,以及如何使用带有 C#的 MailKit 库通过 SMTP 发送响应。
本章将介绍如何连接到 POP3 或 IMAP 邮件服务器,如何从电子邮件中检索、解析和提取数据,以及如何使用带有 C# 的 MailKit 库通过 SMTP 发送响应。
现在我们知道了电子邮件的结构包括几个元素,我们需要了解每个电子邮件元素中存在哪些类型的数据。
......@@ -32,7 +32,7 @@
*表 2:电子邮件元素数据类型*
利用我们对电子邮件元素的数据类型的了解,我们可以确定如何处理每个元素,并预测我们期望提取的数据类型。为了连接到邮件服务器并提取数据,我们将使用一个名为 MailKit 的跨平台 C#库。
利用我们对电子邮件元素的数据类型的了解,我们可以确定如何处理每个元素,并预测我们期望提取的数据类型。为了连接到邮件服务器并提取数据,我们将使用一个名为 MailKit 的跨平台 C# 库。
MailKit 是跨平台的。基于 MimeKit 构建的 IMAP、POP3 和 SMTP 的. NET 库。Mailkit 是由来自 Xamarin 的 Jeffrey Stedfast 开发的,关于它的更多信息可以在[https://components.xamarin.com/view/mailkit](https://components.xamarin.com/view/mailkit)[https://github.com/jstedfast/MailKit](https://github.com/jstedfast/MailKit)的 GitHub 上找到。
......@@ -44,7 +44,7 @@ MailKit 是跨平台的。基于 MimeKit 构建的 IMAP、POP3 和 SMTP 的. NET
MailKit 支持 IMAP4、POP3、SMTP 客户端、SASL 身份验证以及客户端邮件排序和线程。支持功能的完整列表可在 MailKit 网站上找到。
由于 MailKit 是一个 C#库,下面的代码示例是使用 Visual Studio 2015 编写的,它的目标是。NET 4.5.2,可能会使用 C# 6.0 的一些功能。
由于 MailKit 是一个 C# 库,下面的代码示例是使用 Visual Studio 2015 编写的,它的目标是。NET 4.5.2,可能会使用 C# 6.0 的一些功能。
连接到 POP3 或 IMAP 服务器以便以后检索电子邮件是使用邮件工具包的一个基本组成部分。让我们看看这是如何做到的。
......
......@@ -4,7 +4,7 @@
阅读截图并提取有价值信息的过程通常称为捕获或提取。提取屏幕截图中包含的单词、数字或文本称为光学字符识别(OCR)。
阅读本章后,您应该能够在 C#程序中安装 EmguCV,以便通过从便携式网络图形(PNG)或标记图像格式(TIFF)格式的屏幕截图中提取文本形式的数据来执行光学字符识别。
阅读本章后,您应该能够在 C# 程序中安装 EmguCV,以便通过从便携式网络图形(PNG)或标记图像格式(TIFF)格式的屏幕截图中提取文本形式的数据来执行光学字符识别。
当截图需要转换成数字图像时,可以使用几种不同的格式保存。保存截图最常用的格式是 TIFF、PNG 或联合图像专家组(JPEG)。TIFF 格式最适合执行光学字符识别,大多数光学字符识别引擎更喜欢使用 TIFF 作为提取文本的预定义格式。
......
......@@ -16,7 +16,7 @@
大多数提供应用编程接口的网站使用 [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) ,这允许第三方应用程序和开发人员通过 HTTP(S)消费他们的数据。
使用 C#时,有几种方法可以连接到 HTTP(S)端点并发出 GET 或 POST 请求我们将使用名为 [RestSharp](http://restsharp.org/) 的库,这使得使用任何 REST API 都变得极其容易。
使用 C# 时,有几种方法可以连接到 HTTP(S)端点并发出 GET 或 POST 请求我们将使用名为 [RestSharp](http://restsharp.org/) 的库,这使得使用任何 REST API 都变得极其容易。
图 7 显示了 RestSharp 如何作为 NuGet 包安装。
......@@ -24,7 +24,7 @@
*图 7:用 Visual Studio 2015 将 RestSharp 作为 NuGet 包安装*
一旦安装了 RestSharp,就会向 Visual Studio 项目中添加一个引用。现在让我们看看如何在 C#中使用 RestSharp。
一旦安装了 RestSharp,就会向 Visual Studio 项目中添加一个引用。现在让我们看看如何在 C# 中使用 RestSharp。
代码清单 12:创建和使用 RestSharp 网络客户端
......@@ -278,9 +278,9 @@ GetRawNYTBestSellersListNames 以字符串形式返回的原始 JSON 结果实
我们可以很快看到,list_name、display_name、list_name_encoded、最旧 _published_date、最新 _published_date 和 update 是我们感兴趣的实际属性。
让我们用 JSON.NET 将这个 JSON 响应反序列化为一个 C#对象。
让我们用 JSON.NET 将这个 JSON 响应反序列化为一个 C# 对象。
代码清单 15:使用 JSON.NET 将 JSON 对象反序列化为 C#类
代码清单 15:使用 JSON.NET 将 JSON 对象反序列化为 C#
```cs
......@@ -293,11 +293,11 @@ GetRawNYTBestSellersListNames 以字符串形式返回的原始 JSON 结果实
```
代码清单 15 显示了 JsonConvert 是一个 JSON.NET 类,它将 JSON 对象反序列化为 C#类。在前面的代码中,C#类由 T 表示。
代码清单 15 显示了 JsonConvert 是一个 JSON.NET 类,它将 JSON 对象反序列化为 C# 类。在前面的代码中,C# 类由 T 表示。
t 是一个泛型类类型,但是为了让 JSON.NET 能够正确地反序列化它,它需要用 JSON 对象响应中包含的相同属性来定义。让我们看看这是如何做到的。
代码清单 16:反序列化 JSON 响应所需的 C#类
代码清单 16:反序列化 JSON 响应所需的 C#
```cs
......@@ -361,9 +361,9 @@ t 是一个泛型类类型,但是为了让 JSON.NET 能够正确地反序列
```
能够用 JSON.NET 成功解析 JSON 响应的关键是拥有一个 C#等价类(定义为一个或多个类),其属性与 JSON 响应对象中返回的属性相同。请确保使用相同的属性名和相同的数据类型,尽管您可以将 C#类本身命名为任何适合的名称。请注意,返回的 JSON 对象的属性名称和等效 C#类的属性名称是相同的。还要注意,数据类型是相同的。
能够用 JSON.NET 成功解析 JSON 响应的关键是拥有一个 C# 等价类(定义为一个或多个类),其属性与 JSON 响应对象中返回的属性相同。请确保使用相同的属性名和相同的数据类型,尽管您可以将 C# 类本身命名为任何适合的名称。请注意,返回的 JSON 对象的属性名称和等效 C# 类的属性名称是相同的。还要注意,数据类型是相同的。
JSON 字符串属性需要一个字符串 C#字符串属性,而 JSON 日期属性需要一个等效的 C#日期时间。带有子属性(即结果)的 JSON 数组属性需要一个具有相同子属性名称和数据类型的 C#数组等价物(即畅销书名网站)。
JSON 字符串属性需要一个字符串 C# 字符串属性,而 JSON 日期属性需要一个等效的 C# 日期时间。带有子属性(即结果)的 JSON 数组属性需要一个具有相同子属性名称和数据类型的 C# 数组等价物(即畅销书名网站)。
既然我们已经解决了如何解析 JSON 响应,那么让我们创建一个快速的程序来清楚地显示获得的结果。
......
......@@ -14,7 +14,7 @@ NLP 并不局限于这三个领域。它的范围非常广泛。这三个只是
对于任何开发人员来说,能够使用自然语言处理来理解文本都是一项巨大的资产,从业务角度来看,这些知识可以帮助公司简化和改进业务流程,例如人员招聘的自动化(简历/简历解析和简档匹配)、分类和归类以及电子邮件垃圾邮件检测。
到本章结束时,您应该能够使用这些技术中的一些,以便使用 C#对任何给定的文本执行朴素贝叶斯分类和命名实体识别。
到本章结束时,您应该能够使用这些技术中的一些,以便使用 C# 对任何给定的文本执行朴素贝叶斯分类和命名实体识别。
为了将项目分类或归类到特定的类别中,我们必须了解特定的单词如何适合特定的上下文。就我们的目的而言,上下文是书面或口头陈述的一部分,位于特定单词或段落之前或之后,通常影响其含义或效果。语境化是情感分析、文本分类和归类的支柱。
......@@ -129,7 +129,7 @@ PP(男| X) = P(金融|男)* P(<40 |男)* P(高级|男)* P(男)
其中,女性和男性是组(描述为 A),金融,< 40,高级是属性(描述为 X)。
有了这个理论,让我们用 C#编写一个简单的朴素贝叶斯引擎,包括加一平滑。引擎将要求输入等式所期望的相同属性(X),并且它将要求对组进行评估。
有了这个理论,让我们用 C# 编写一个简单的朴素贝叶斯引擎,包括加一平滑。引擎将要求输入等式所期望的相同属性(X),并且它将要求对组进行评估。
代码清单 20:一个简单的平滑贝叶斯引擎
......@@ -1016,9 +1016,9 @@ BayesEngine 还支持加一平滑,默认情况下,它是假设和应用的(
如果这些字符中的任何一个在 RegEx 中用作文字,它们需要用反斜杠“\”字符进行转义。如果我们想匹配 1+1=2,正确的正则表达式是 1\+1=2。否则,'+'符号会有特殊的含义。一个让你开始使用 RegEx 的很好的教程可以在 [RegExOne](http://regexone.com/) 找到。
让我们快速探索如何用 C#实现 RegEx。
让我们快速探索如何用 C# 实现 RegEx。
代码清单 22:一个正则表达式 C#示例
代码清单 22:一个正则表达式 C# 示例
```cs
......@@ -1116,7 +1116,7 @@ IP 地址:^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][
让我们稍微调整一下代码,适应 256.58.125.121,以便在产生匹配时显示。
代码清单 23:调整后的正则表达式 C#示例
代码清单 23:调整后的正则表达式 C# 示例
```cs
......@@ -1151,13 +1151,13 @@ IP 地址:^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][
您可以在前面的代码中使用前面的任何示例,以验证所提供的匹配是否如预期的那样工作。
其他需要从文本中提取的常见字符串数据类型有电子邮件、邮政编码、社保号、驾照、财政身份证号、银行账号、电话号码、区号等。网站 [RegExLib](http://www.regexlib.com/) 包含了大量可以在 C#项目中应用的热门 RegEx。另一个有用的网站是[雷盛](http://www.rexegg.com)
其他需要从文本中提取的常见字符串数据类型有电子邮件、邮政编码、社保号、驾照、财政身份证号、银行账号、电话号码、区号等。网站 [RegExLib](http://www.regexlib.com/) 包含了大量可以在 C# 项目中应用的热门 RegEx。另一个有用的网站是[雷盛](http://www.rexegg.com)
[命名实体识别](https://en.wikipedia.org/wiki/Named-entity_recognition) (NER)包括将文本元素(命名实体)的子集定位和分类到预定义的类别中,例如人名、组织名、地点名、金额名、货币值、百分比等。
使用概率方法(如朴素贝叶斯)将单词分类当然允许我们基于训练好的数据集将一组单词放入特定的类别,但是 NER 的这种使用仍然是非常基本的。为了获得非常精确的 NER,我们必须使用训练有素的数据集模型。
的流行 NER 实现。NET 和 C#是(NER)的[斯坦福命名实体识别器](http://sergey-tihon.github.io/Stanford.NLP.NET/StanfordNER.html)。NET,也可以通过 NuGet 获得。
的流行 NER 实现。NET 和 C# 是(NER)的[斯坦福命名实体识别器](http://sergey-tihon.github.io/Stanford.NLP.NET/StanfordNER.html)。NET,也可以通过 NuGet 获得。
![](img/00017.jpeg)
......@@ -1169,7 +1169,7 @@ IP 地址:^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][
让我们看看如何用. NET 的斯坦福 NER 快速实现 NER
代码清单 24:一个 C#斯坦福 NER 实现程序
代码清单 24:一个 C# 斯坦福 NER 实现程序
```cs
......@@ -1376,15 +1376,15 @@ IP 地址:^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][
![](img/00018.jpeg)
*图 15:斯坦福 NER C#实现输出*
*图 15:斯坦福 NER C# 实现输出*
使用输入字符串“我去了位于加州的斯坦福”,斯坦福 NET C#程序可以识别两个命名实体:斯坦福(是一个组织)和加州(是一个地点)。
使用输入字符串“我去了位于加州的斯坦福”,斯坦福 NET C# 程序可以识别两个命名实体:斯坦福(是一个组织)和加州(是一个地点)。
从文本中提取意义是一个有趣的话题,无论我们是在研究如何提取特定的数据类型、识别实体还是对文本中的单词进行分类。当您能够理解提取的数据时,您就可以使用一个强大的工具来帮助您改进、加速和自动化业务流程。事实上,从垃圾邮件过滤器到文本分类等等,各种流程都有无限的潜力可供组织精简和改进。我们只触及了强大的 C#代码实现的表面。
从文本中提取意义是一个有趣的话题,无论我们是在研究如何提取特定的数据类型、识别实体还是对文本中的单词进行分类。当您能够理解提取的数据时,您就可以使用一个强大的工具来帮助您改进、加速和自动化业务流程。事实上,从垃圾邮件过滤器到文本分类等等,各种流程都有无限的潜力可供组织精简和改进。我们只触及了强大的 C# 代码实现的表面。
请记住,我在本书中介绍的技术是推荐给概念测试的,而不是产品使用的。我们专注于从概念角度快速实现可能实现的目标,这些技术不会与任何商业产品竞争或破坏任何商业产品。我鼓励您也考虑各种各样的商业产品,这些产品具有强大的 API 并得到专业支持。
感谢阅读。我希望这些资料有助于拓宽你对 C#数据获取和提取的看法。
感谢阅读。我希望这些资料有助于拓宽你对 C# 数据获取和提取的看法。
完整的 Visual Studio 项目源代码可以从以下网址下载:
......
......@@ -155,7 +155,7 @@ unit 关键字后面是一个标识符,它作为该单元包含的所有元素
如果变量在过程或函数内部声明,它们是局部的,因此在例程外部不可见。如果你把一个变量声明放在一个单元的实现部分,你就使它们对整个单元是全局的。如果在接口部分放置一个声明,那么其他所有导入它的单元也可以访问这个变量。
局部变量必须在 begin…end 块之前声明,begin…end 块标记了过程和函数的主体部分,因此不能“内联”声明变量(例如,就像在 C#中一样)。
局部变量必须在 begin…end 块之前声明,begin…end 块标记了过程和函数的主体部分,因此不能“内联”声明变量(例如,就像在 C# 中一样)。
| ![](img/00008.gif) | 注意:每个标识符必须是有效的,才能被德尔福编译器毫无怨言地接受。要做到这一点,千万不要用数字作为名字的开头,也不要用保留字作为单位、例程、类型和变量。 |
......@@ -586,7 +586,7 @@ Delphi 包括对异常处理的支持。异常允许您在处理运行时错误
如果你认为 Object Pascal 是很多年前在学校学的 MS-DOS Turbo Pascal 语言,那你就要重新思考了。
如您所见,Object Pascal——尤其是 Delphi 中使用的方言——经过多年的扩展,具有许多现代编程语言所特有的新特性。像 C#或 Java 一样,您可以找到对运算符重载、匿名方法、闭包、泛型等的支持,并且在 Delphi 的每个新版本中都添加了更多的功能。
如您所见,Object Pascal——尤其是 Delphi 中使用的方言——经过多年的扩展,具有许多现代编程语言所特有的新特性。像 C# 或 Java 一样,您可以找到对运算符重载、匿名方法、闭包、泛型等的支持,并且在 Delphi 的每个新版本中都添加了更多的功能。
Object Pascal 提供了功能强大的工具的平衡组合,清晰可读的语法,不会变得过于冗长。
......
......@@ -381,7 +381,7 @@ ProcessorCount 变量是一个私有的静态成员,由于类 var 关键字,
保存对所创建对象的引用的变量必须是同一类型或祖先类型。
| ![](img/00010.jpeg) | 提示:如果要使引用类型变量指向无对象,可以将其设置为 nil,这是一个代表空引用值的关键字,就像 C#中的 null 一样。 |
| ![](img/00010.jpeg) | 提示:如果要使引用类型变量指向无对象,可以将其设置为 nil,这是一个代表空引用值的关键字,就像 C# 中的 null 一样。 |
调用方法`LoadFromFile`引入`TMemoryStream`。这将缓冲指定文件中包含的所有数据(路径被指定为方法的第一个参数)。
......
......@@ -20,7 +20,7 @@
* 创建一个单独的类来负责备份过程。
* 每次满足参数文件中建立的条件时,执行备份过程。
为了本书的目的,将开发一个具有特定功能的窗口服务。在这种情况下,将使用 C#作为编程语言编写备份文件服务,它将在目标系统中制作特定文件夹的压缩副本。
为了本书的目的,将开发一个具有特定功能的窗口服务。在这种情况下,将使用 C# 作为编程语言编写备份文件服务,它将在目标系统中制作特定文件夹的压缩副本。
### 创建 XML 配置文件
......
......@@ -8,7 +8,7 @@
## 在 Visual Studio 中创建解决方案
第一步是使用 Visual Studio 创建一个名为 **MonitorServiceGUI** 的 Windows 窗体项目。要使用的编程语言将是 C#并且目标框架将是。NET 4。
第一步是使用 Visual Studio 创建一个名为 **MonitorServiceGUI** 的 Windows 窗体项目。要使用的编程语言将是 C# 并且目标框架将是。NET 4。
![](img/image015.jpg)
......
......@@ -4,7 +4,7 @@
## 工装
所有代码示例都将使用安装在 Azure 上的虚拟机上的 Visual Studio 2014 CTP2 用 C#编写。这假定您熟悉 C#语法。但是,为了避免误解,将对代码进行解释。
所有代码示例都将使用安装在 Azure 上的虚拟机上的 Visual Studio 2014 CTP2 用 C# 编写。这假定您熟悉 C# 语法。但是,为了避免误解,将对代码进行解释。
## 环境
......
......@@ -88,7 +88,7 @@
父=(索引- 1) / 2
从技术上讲,它是 floor((index - 1) / 2)。然而,C#为我们处理整数截断。
从技术上讲,它是 floor((index - 1) / 2)。然而,C# 为我们处理整数截断。
### 关键点
......
# 一、简介
ECMAScript 6 (ES6),也称为 ECMAScript 2015,为开发人员带来了长期以来一直想要的新功能和特性。等待结束了,现在您可以开发所有这些功能。真正的好消息是,您还可以使用 transpiler 来定位甚至不支持 ES6 的浏览器。编译器将一种语言翻译成另一种语言,例如 C#到 MSIL,而 transpiler 将一种语言的一个版本转换成另一种语言,例如 ES6 到 ES5。
ECMAScript 6 (ES6),也称为 ECMAScript 2015,为开发人员带来了长期以来一直想要的新功能和特性。等待结束了,现在您可以开发所有这些功能。真正的好消息是,您还可以使用 transpiler 来定位甚至不支持 ES6 的浏览器。编译器将一种语言翻译成另一种语言,例如 C# 到 MSIL,而 transpiler 将一种语言的一个版本转换成另一种语言,例如 ES6 到 ES5。
为了遵循本书中的代码示例,您需要在您的开发机器上安装以下内容:
......
# 五、扩展参数处理
ES6 中引入的另一组很好的特性是扩展的参数处理。这些提供了一组非常好的习惯用法,使我们非常接近像 C#或 Java 这样的语言。
ES6 中引入的另一组很好的特性是扩展的参数处理。这些提供了一组非常好的习惯用法,使我们非常接近像 C# 或 Java 这样的语言。
默认参数允许您的函数有可选参数,而无需检查`arguments.length`或检查`undefined`
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册