精华内容
下载资源
问答
  • 通过在您的电子邮件地址中添加特殊符号(例如点或加号)(对于某些电子邮件提供商),您可以充分利用它。 您可以管理传入的组电子邮件并在某些站点上多次注册。 它使您可以在名片上放置不同形式的地址,从而了解传入...

    电邮地址

    Let’s talk about some email features that are surprisingly under-used, and that can really benefit you — if you know how to use them. This article is suitable for both users and developers who want to become email Jedi.

    让我们讨论一些电子邮件功能,这些功能出奇的使用不足,如果您知道如何使用它们,那么它们确实可以使您受益。 本文既适合希望成为电子邮件Jedi的用户,也适合开发人员。

    技巧1:单个帐户中有多个电子邮件地址 (Hack 1: Multiple email addresses within a single account)

    Have you ever wanted to register multiple times on a website, but still keep the same inbox for all the accounts? This simple trick works with about 95% of websites and services across the world. Even on Twitter and Instagram.

    您是否曾经想过在一个网站上多次注册,但是仍然为所有帐户保留相同的收件箱? 这个简单的技巧适用于全球约95%的网站和服务。 即使在Twitter和Instagram上。

    Some email providers, like gmail.com or live.com, allow you to put an extra dot between the letters of the email address. This changes nothing but the look of the address.

    某些电子邮件提供商(例如gmail.com或live.com)允许您在电子邮件地址的字母之间添加一个额外的点。 这只会改变地址的外观。

    For example, say you own letgrandmaseat@gmail.com. You also own let.grandma.seat@gmail.com, let.grandmas.eat@gmail.com, l.e.t.g.r.a.n.d.m.a.s.e.a.t@gmail.com, and so on. All the emails sent to these addresses will appear in the same inbox. You can send emails back using any of these addresses as well — it just needs a bit of configuration.

    例如,假设您拥有letgrandmaseat@gmail.com。 您还拥有let.grandma.seat@gmail.comlet.grandmas.eat@gmail.comletgrandmaseat@gmail.com等。 发送到这些地址的所有电子邮件将显示在同一收件箱中。 您也可以使用这些地址中的任何一个发送回电子邮件-只需进行一些配置即可

    This allows you to change the look of an email address, and use any of the iterations as a “new,” valid email. For example:

    这使您可以更改电子邮件地址的外观,并将任何迭代用作“新的”有效电子邮件。 例如:

    • You can register on websites multiple times using the same email account

      您可以使用同一电子邮件帐户在网站上多次注册
    • You can share different forms of your email address with different people. This way, when receiving emails from unknowns, you can find out how senders learned about your email address.

      您可以与其他人共享不同形式的电子邮件地址。 这样,当您接收未知邮件时,您可以了解发件人如何了解您的电子邮件地址。

    In addition, some email providers allow you to add a plus sign to your address followed by any arbitrary string:

    此外,某些电子邮件提供商允许您在地址中添加加号,后跟任意字符串:

    • let.grandmas.eat+your.soup@gmail.com

      let.grandmas.eat+your.soup@gmail.com

    • let.grandma.seat+a.baby@gmail.com

      let.grandma.seat+a.baby@gmail.com

    This increases the number of possible email address variations almost to infinity.

    这将可能的电子邮件地址变化的数量增加到几乎无限。

    This can be extremely useful for grouping your incoming emails. You can set up a rule to group emails differently according to the address they come from. For example, you can register on some minor websites using the letgrandmaseat+trash@gmail.com address. Then, you can set up an inbox rule to move all those incoming emails to the “Low Priority” box.

    这对于将收到的电子邮件进行分组非常有用。 您可以设置一个规则 ,根据电子邮件来自的地址对电子邮件进行不同的分组。 例如,您可以使用letgrandmaseat+trash@gmail.com地址在一些较小的网站上注册。 然后,您可以设置一个收件箱规则,将所有这些收到的电子邮件移动到“低优先级”框中。

    Many services offering a trial version of their products accept different forms of the same email account. This means that you can register again and again, when each trial ends, to get a new trial — all with the same email account. Developers can’t do much to restrict this. Continue reading to figure out why.

    提供其产品试用版的许多服务都接受同一电子邮件帐户的不同形式。 这意味着您可以在每次试用结束后一次又一次注册,以使用相同的电子邮件帐户获得新的试用。 开发人员不能做太多限制。 继续阅读以找出原因。

    技巧2:许多域可以引用同一帐户 (Hack 2: Many domains can refer to the same account)

    If you own any @gmail.com address, you can also use any @googlemail.com address for sending or receiving emails. Most websites and web services treat these email addresses as different. This allows you to register multiple accounts using both forms of a single email address.

    如果您拥有任何@ gmail.com地址,则也可以使用任何@ googlemail.com地址发送或接收电子邮件。 大多数网站和Web服务将这些电子邮件地址视为不同。 这使您可以使用两种形式的单个电子邮件地址注册多个帐户。

    技巧3:电子邮件地址可能区分大小写 (Hack 3: Email addresses can be case-sensitive)

    Many people know that it doesn’t typically matter whether you write to letgrandmaseat@gmail.com or LetGrandmasEat@gmail.com.

    许多人都知道,无论您写给letgrandmaseat@gmail.com还是LetGrandmasEat@gmail.com,通常都没有关系

    But it turns out that the part before the @ can be case-sensitive. This is because it is entirely under the control of the host system. According to RFC 5321, section 2.3.11:

    但是事实证明@之前的部分可以区分大小写。 这是因为它完全在主机系统的控制之下。 根据RFC 5321第2.3.11节:

    “The standard mailbox naming convention is defined to be “local-part@domain;” contemporary usage permits a much broader set of applications than simple “user names.” Consequently, and due to a long history of problems when intermediate hosts have attempted to optimize transport by modifying them, the local-part MUST be interpreted and assigned semantics only by the host specified in the domain part of the address.”
    “标准邮箱命名约定定义为“ local-part @ domain”;” 与简单的“用户名”相比,现代用法允许更多的应用程序集。 因此,由于长期存在的问题历史,当中间主机试图通过修改它们来优化传输时,本地部分必须只能由地址的域部分中指定的主机来解释和分配语义。

    So, if you use a luxury domain instead of a well-known one (like gmail.com), it’s best to keep the address in its original case. But if you accidentally mistyped and the resulting address does not exist, you will likely receive an email telling you that your message was not delivered.

    因此,如果您使用豪华域名而不是知名域名(例如gmail.com),则最好将地址保留为原始大小写。 但是,如果您不小心输入了错误且结果地址不存在,则可能会收到一封电子邮件,告诉您您的消息未送达。

    These naming conventions completely depend on the host systems. Technically, anyone who can create email servers can set up any naming rules they want. They can use different domains they own for the same mailbox, allow or deny any of the valid characters in the email addresses, and so on.

    这些命名约定完全取决于主机系统。 从技术上讲,任何可以创建电子邮件服务器的人都可以设置所需的任何命名规则。 他们可以对同一个邮箱使用不同的域,允许或拒绝电子邮件地址中的任何有效字符 ,等等。

    hack 4:“一次性电子邮件”服务 (Hack 4: “Disposable email” services)

    There are a couple of services which allow you to create a temporary, disposable email address for free. These exist to allow you to access information when you don’t want to register because of privacy concerns or other issues.

    有一些服务可让您免费创建一个临时的, 可处理的电子邮件地址 。 这些功能可让您在由于隐私或其他问题而不想注册时访问信息。

    And these services are used by many people. Just check how often test@mailinator.com receives emails, and how much uninteresting junk there is.

    这些服务被很多人使用。 只需检查test@mailinator.com多久接收一次电子邮件 ,以及有多少无趣的垃圾。

    To prevent the use of fake emails, some services use different email validation solutions. And yes, they help in some cases. It becomes more difficult to create a bunch of email addresses which will bypass validity checks. Lots of robots and spamming programs will die here, which is why these services exist.

    为了防止使用伪造的电子邮件,某些服务使用了不同的电子邮件验证解决方案 。 是的,它们在某些情况下会有所帮助。 创建一堆绕过有效性检查的电子邮件地址变得更加困难。 许多机器人和垃圾邮件程序将在这里死亡,这就是为什么存在这些服务的原因。

    Do email validation services sound like the solution to fraud or spam problems? In most cases — yes. But not for all possible problems, as you’ll read next.

    电子邮件验证服务听起来像是针对欺诈或垃圾邮件问题的解决方案吗? 在大多数情况下-是的。 但是,并非所有可能的问题,您都将在下面阅读。

    技巧5:您可以免费创建几乎任何电子邮件地址 (Hack 5: You Can Create Almost Any Email Address For Free)

    When you own a domain, you can set up an email service for it. There are a couple services which let you do this for free. And there are a couple providers which provide free domain names for everyone.

    拥有域后,您可以为其设置电子邮件服务。 有一些服务可让您免费进行此操作。 并且有一些提供商为每个人提供免费域名。

    If you can follow instructions to set up a domain and an email on it, you can create any.name@any.domain.XY email address for free. The detailed instructions to set up such an email are beyond of the scope of this article. But in short, the procedure looks like this:

    如果您可以按照说明在其上设置域和电子邮件,则可以免费创建any.name@any.domain.XY电子邮件地址。 设置此类电子邮件的详细说明超出了本文的范围。 简而言之,该过程如下所示:

    1. Register a free or paid domain by filling out a typical registration form.

      通过填写典型的注册表格来注册免费或付费域名。

    2. Select one of the “email for domain” providers (for example, Zoho), and follow the instructions to create an email account for your domain.

      选择“域电子邮件”提供商之一(例如Zoho ),然后按照说明为您的域创建一个电子邮件帐户。

    Yes, it’s that easy.

    是的,就是这么简单。

    对电子邮件用户的影响 (The implications for email users)

    By adding special symbols like dots or plus signs to your email address (for some email providers) you can get the most of it. You can manage incoming group emails and register multiple times on some sites. And it lets you put different forms of your address on your business card so you know the source of incoming emails.

    通过在您的电子邮件地址中添加特殊符号(例如点或加号)(对于某些电子邮件提供商),您可以充分利用它。 您可以管理传入的组电子邮件并在某些站点上多次注册。 它使您可以在名片上放置不同形式的地址,从而了解传入电子邮件的来源。

    Disposable emails, as well as temporary phone number services, can protect your privacy when you need to register on an unwanted website for any reason.

    当您出于任何原因需要在不需要的网站上注册时, 一次性电子邮件以及临时电话号码服务可以保护您的隐私。

    And finally, nowadays anyone can register a free domain name and set up an email on it. This gives you a unique, personalized, and valid email address.

    最后,如今,任何人都可以注册一个免费域名并在其上设置电子邮件。 这为您提供了一个唯一,个性化且有效的电子邮件地址。

    对开发人员的影响 (The implications for developers)

    In short, there is no way to be completely sure that we can trust a given email. But these are some practices that can reduce abnormal use of an email address:

    简而言之,无法完全确定我们可以信任给定的电子邮件。 但是,以下一些做法可以减少对电子邮件地址的异常使用:

    1. Do you store emails as primary IDs in the database, but want to disallow users from registering on your service multiple times? If so, you can use a library like this to normalize email addresses before storing them as IDs. This library removes dots and plus-sign endings according to different well-known email providers, changes the address to lowercase, and fixes domain names to a single form (googlemail.com → gmail.com).

    1.您是否将电子邮件作为主要ID存储在数据库中,但要禁止用户多次注册您的服务? 如果是这样,您可以使用类似的库在将电子邮件地址存储为ID之前对其进行规范化。 该库根据不同的知名电子邮件提供商删除点和加号的结尾,将地址更改为小写,并将域名固定为一种形式(googlemail.com→gmail.com)。

    2. If you use libraries that normalize email addresses, let users keep their email address in the form it was originally entered. For example, if a user registers on your service with username+bank@googlemail.com, make sure that all the emails are sent only to that address. Don’t send to the “normalized” username@gmail.com address.

    2.如果您使用规范化电子邮件地址的库,请让用户将电子邮件地址保留为最初输入的形式。 例如,如果用户使用username+bank@googlemail.com在您的服务上注册,请确保所有电子邮件仅发送到该地址。 不要发送到“规范化”的username@gmail.com地址。

    3. To detect disposable email addresses, you can use open-source libraries like this. You can also rely on the services which provide APIs to validate email addresses. There are more than 2,000 domains in the list!

    3.要检测一次性电子邮件地址,您可以使用像这样的开源库。 您还可以依赖提供API的服务来验证电子邮件地址。 列表中有2,000多个域

    I hope you learned something new by reading this article. If you like it, let it spread over Medium by pressing on the “clap” button as many times as you will ? .

    希望您通过阅读这篇文章学到新东西。 如果您喜欢,可以通过按“拍手”按钮多次将其散布在“中”上? 。

    Thank you for reading!

    感谢您的阅读!

    翻译自: https://www.freecodecamp.org/news/harness-the-full-power-of-email-with-these-simple-hacks-5dc240dba152/

    电邮地址

    展开全文
  • SQL SERVER的排序规则平时使用不是很多,也许不少初学者还比较陌生,但有一个错误大家应是经常碰到: SQL SERVER数据库,在跨库多表连接查询时,若两数据库默认字符集不同,系统就会返回这样的错误: “无法解决 ...


      SQL SERVER的排序规则平时使用不是很多,也许不少初学者还比较陌生,但有
    一个错误大家应是经常碰到: SQL SERVER数据库,在跨库多表连接查询时,若两数据
    库默认字符集不同,系统就会返回这样的错误:
          
               “无法解决 equal to 操作的排序规则冲突。”

    一.错误分析:
      这个错误是因为排序规则不一致造成的,我们做个测试,比如:
    create table #t1(
    name varchar(20) collate Albanian_CI_AI_WS, 
    value int)

    create table #t2(
    name varchar(20) collate Chinese_PRC_CI_AI_WS,   
    value int )

    表建好后,执行连接查询:

    select * from #t1 A inner join #t2 B on A.name=B.name

    这样,错误就出现了:

               服务器: 消息 446,级别 16,状态 9,行 1
               无法解决 equal to 操作的排序规则冲突。
      要排除这个错误,最简单方法是,表连接时指定它的排序规则,这样错误就
    不再出现了。语句这样写:

    select *
    from #t1 A inner join #t2 B
    on A.name=B.name collate Chinese_PRC_CI_AI_WS


    二.排序规则简介:

        什么叫排序规则呢?MS是这样描述的:"在 Microsoft SQL Server 2000 中,
    字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存
    储和比较字符所使用的规则。"
      在查询分析器内执行下面语句,可以得到SQL SERVER支持的所有排序规则。

        select * from ::fn_helpcollations()

    排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。
    如:
      Chinese_PRC_CS_AI_WS
    前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。
    排序规则的后半部份即后缀 含义:
      _BIN 二进制排序
      _CI(CS) 是否区分大小写,CI不区分,CS区分
      _AI(AS) 是否区分重音,AI不区分,AS区分   
      _KI(KS) 是否区分假名类型,KI不区分,KS区分 
        _WI(WS) 是否区分宽度 WI不区分,WS区分 

    区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
    区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,
             比较还将重音不同的字母视为不等。
    区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
    区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项


    三.排序规则的应用:
      SQL SERVER提供了大量的WINDOWS和SQLSERVER专用的排序规则,但它的应用往往
    被开发人员所忽略。其实它在实践中大有用处。

      例1:让表NAME列的内容按拼音排序:

    create table #t(id int,name varchar(20))
    insert #t select 1,'中'
    union all select 2,'国'
    union all select 3,'人'
    union all select 4,'阿'

    select * from #t order by name collate Chinese_PRC_CS_AS_KS_WS
    drop table #t
    /*结果:
    id          name                
    ----------- --------------------
    4           阿
    2           国
    3           人
    1           中
    */

      例2:让表NAME列的内容按姓氏笔划排序:

    create table #t(id int,name varchar(20))

    insert #t select 1,'三'
    union all select 2,'乙'
    union all select 3,'二'
    union all select 4,'一'
    union all select 5,'十'
    select * from #t order by name collate Chinese_PRC_Stroke_CS_AS_KS_WS 
    drop table #t
    /*结果:
    id          name                
    ----------- --------------------
    4           一
    2           乙
    3           二
    5           十
    1           三
    */

    四.在实践中排序规则应用的扩展
      SQL SERVER汉字排序规则可以按拼音、笔划等排序,那么我们如何利用这种功能
    来处理汉字的一些难题呢?我现在举个例子:

              用排序规则的特性计算汉字笔划

      要计算汉字笔划,我们得先做准备工作,我们知道,WINDOWS多国汉字,UNICODE目前
    收录汉字共20902个。简体GBK码汉字UNICODE值从19968开始。
      首先,我们先用SQLSERVER方法得到所有汉字,不用字典,我们简单利用SQL语句就
    可以得到:

    select top 20902 code=identity(int,19968,1) into #t from syscolumns a,syscolumns b

    再用以下语句,我们就得到所有汉字,它是按UNICODE值排序的:

      select code,nchar(code) as CNWord from #t

      然后,我们用SELECT语句,让它按笔划排序。

    select code,nchar(code) as CNWord
    from #t
    order by nchar(code) collate Chinese_PRC_Stroke_CS_AS_KS_WS,code

    结果:
    code        CNWord
    ----------- ------
    19968       一
    20008       丨
    20022       丶
    20031       丿
    20032       乀
    20033       乁
    20057       乙
    20058       乚
    20059       乛
    20101       亅
    19969       丁
    ..........

       从上面的结果,我们可以清楚的看到,一笔的汉字,code是从19968到20101,从小到大排,但到
    了二笔汉字的第一个字“丁”,CODE为19969,就不按顺序而重新开始了。有了这结果,我们就可以轻
    松的用SQL语句得到每种笔划汉字归类的第一个或最后一个汉字。
    下面用语句得到最后一个汉字:

    create table #t1(id int identity,code int,cnword nvarchar(2))

    insert #t1(code,cnword)
    select code,nchar(code) as CNWord  from #t
    order by nchar(code) collate Chinese_PRC_Stroke_CS_AS_KS_WS,code


    select A.cnword
    from #t1 A
    left join #t1 B on A.id=B.id-1 and A.code<B.code
    where B.code is null
    order by A.id

    得到36个汉字,每个汉字都是每种笔划数按Chinese_PRC_Stroke_CS_AS_KS_WS排序规则排序后的
    最后一个汉字:

    亅阝马风龙齐龟齿鸩龀龛龂龆龈龊龍龠龎龐龑龡龢龝齹龣龥齈龞麷鸞麣龖龗齾齉龘

      上面可以看出:“亅”是所有一笔汉字排序后的最后一个字,“阝”是所有二笔汉字排序后的最后
    一个字......等等。
      但同时也发现,从第33个汉字“龗(33笔)”后面的笔划有些乱,不正确。但没关系,比“龗”笔划
    多的只有四个汉字,我们手工加上:齾35笔,齉36笔,靐39笔,龘64笔

    建汉字笔划表(TAB_HZBH):
    create table tab_hzbh(id int identity,cnword nchar(1))
    --先插入前33个汉字
    insert tab_hzbh
    select top 33 A.cnword
    from #t1 A
    left join #t1 B on A.id=B.id-1 and A.code<B.code
    where B.code is null
    order by A.id
    --再加最后四个汉字
    set identity_insert tab_hzbh on
    go
    insert tab_hzbh(id,cnword)
         select 35,N'齾'
    union all select 36,N'齉'
    union all select 39,N'靐'
    union all select 64,N'龘'
    go
    set identity_insert tab_hzbh off
    go

      到此为止,我们可以得到结果了,比如我们想得到汉字“国”的笔划:

    declare @a nchar(1)
    set @a='国'
    select top 1 id
    from  tab_hzbh
    where cnword>=@a collate Chinese_PRC_Stroke_CS_AS_KS_WS
    order by id

    id         
    -----------
    8
    (结果:汉字“国”笔划数为8)

      上面所有准备过程,只是为了写下面这个函数,这个函数撇开上面建的所有临时表和固
    定表,为了通用和代码转移方便,把表tab_hzbh的内容写在语句内,然后计算用户输入一串
    汉字的总笔划:
    create function fun_getbh(@str nvarchar(4000))
    returns int
    as
    begin
    declare @word nchar(1),@n int,@i int
    set @i=1
    set @n=0
    while substring(@str,@i,1)<>'' or @i<=len(@str)
    begin
    set @word=substring(@str,@i,1)
    --如果非汉字,笔划当0计
    set @n=@n+(case when unicode(@word) between 19968 and 19968+20901
    then (select top 1 id from (
    select 1 as id,N'亅' as word
    union all select 2,N'阝'
    union all select 3,N'马'
    union all select 4,N'风'
    union all select 5,N'龙'
    union all select 6,N'齐'
    union all select 7,N'龟'
    union all select 8,N'齿'
    union all select 9,N'鸩'
    union all select 10,N'龀'
    union all select 11,N'龛'
    union all select 12,N'龂'
    union all select 13,N'龆'
    union all select 14,N'龈'
    union all select 15,N'龊'
    union all select 16,N'龍'
    union all select 17,N'龠'
    union all select 18,N'龎'
    union all select 19,N'龐'
    union all select 20,N'龑'
    union all select 21,N'龡'
    union all select 22,N'龢'
    union all select 23,N'龝'
    union all select 24,N'齹'
    union all select 25,N'龣'
    union all select 26,N'龥'
    union all select 27,N'齈'
    union all select 28,N'龞'
    union all select 29,N'麷'
    union all select 30,N'鸞'
    union all select 31,N'麣'
    union all select 32,N'龖'
    union all select 33,N'龗'
    union all select 35,N'齾'
    union all select 36,N'齉'
    union all select 39,N'靐'
    union all select 64,N'龘'
    ) T
    where word>=@word collate Chinese_PRC_Stroke_CS_AS_KS_WS
    order by id ASC) else 0 end)
    set @i=@i+1
    end
    return @n
    end

    --函数调用实例:
    select dbo.fun_getbh('中华人民共和国'),dbo.fun_getbh('中華人民共和國')
     
      执行结果:笔划总数分别为39和46,简繁体都行。

        当然,你也可以把上面“UNION ALL”内的汉字和笔划改存在固定表内,在汉字
    列建CLUSTERED INDEX,列排序规则设定为:
        Chinese_PRC_Stroke_CS_AS_KS_WS
    这样速度更快。如果你用的是BIG5码的操作系统,你得另外生成汉字,方法一样。
    但有一点要记住:这些汉字是通过SQL语句SELECT出来的,不是手工输入的,更不
    是查字典得来的,因为新华字典毕竟不同于UNICODE字符集,查字典的结果会不正
    确。

      
                  用排序规则的特性得到汉字拼音首字母

      用得到笔划总数相同的方法,我们也可以写出求汉字拼音首字母的函数。如下:

    create function fun_getPY(@str nvarchar(4000))
    returns nvarchar(4000)
    as
    begin
    declare @word nchar(1),@PY nvarchar(4000),@i int
    set @PY=''
    set @i=1
    while (substring(@str,@i,1)<>'' or @i<=len(@str))
    begin
    set @word=substring(@str,@i,1)
    --如果非汉字字符,返回原字符
    set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901
    then (select top 1 PY from (
    select 'A' as PY,N'驁' as word
    union all select 'B',N'簿'
    union all select 'C',N'錯'
    union all select 'D',N'鵽'
    union all select 'E',N'樲'
    union all select 'F',N'鰒'
    union all select 'G',N'腂'
    union all select 'H',N'夻'
    union all select 'J',N'攈'
    union all select 'K',N'穒'
    union all select 'L',N'鱳'
    union all select 'M',N'旀'
    union all select 'N',N'桛'
    union all select 'O',N'漚'
    union all select 'P',N'曝'
    union all select 'Q',N'囕'
    union all select 'R',N'鶸'
    union all select 'S',N'蜶'
    union all select 'T',N'籜'
    union all select 'W',N'鶩'
    union all select 'X',N'鑂'
    union all select 'Y',N'韻'
    union all select 'Z',N'咗'
    ) T
    where word>=@word collate Chinese_PRC_CS_AS_KS_WS
    order by PY ASC) else @word end)
    set @i=@i+1
    end
    return @PY
    end


    --函数调用实例:
    select dbo.fun_getPY('中华人民共和国'),dbo.fun_getPY('中華人民共和國')
    结果都为:ZHRMGHG

       你若有兴趣,也可用相同的方法,扩展为得到汉字全拼的函数,甚至还可以得到全拼的读
    音声调,不过全拼分类大多了。得到全拼最好是用对照表,两万多汉字搜索速度很快,用对照
    表还可以充分利用表的索引。
        排序规则还有很多其它的巧妙用法,限于篇幅在此就不再详细说明。欢迎大家共同探讨。

     

    展开全文
  • 传统的基于样本块的图像补全算法主要采用规则的模板块和匹配块来进行补全,补全过程中不能充分利用图像的结构或纹理的不规则信息,从而影响算法修复的精度和效率。针对这一问题,本研究提出一种基于不规则块的图像...
  • 为了提高ECA规则集可终止性分析的准确性...该算法充分利用EPN所包含ECA规则特性的丰富信息,综合分析了ECA规则特性对规则集可终止性的影响。理论分析和实验结果表明,所提出的算法具有更高的准确性和更低的时间复杂度。
  • 由于通信网络是动态变化的,用于动态网络资源和服务的自适应关联规则算法需要充分利用和维护原有规则来发现新规则,使网络结构与规则库都能快速更新,为此提出了新型的动态关联规则挖掘算法IDARM。理论分析与仿真...
  • 一种多关系关联规则挖掘算法,姜丽莉,,本文引入了频繁项集的键的概念,根据键的计数确定项集的计数。同时,充分利用关系数据库的特点,主外键关系和联系类型等将关系图
  • 为了充分利用它们的潜力,即使对于我们自己制定的规则,我们也总是必须修改一些与它们相关的元数据。 调整简单的元素(例如日期时间格式)并添加重要信息以帮助分析师。 本规范还包括特定于字段,以标识技术和通用...
  • 讨论了关联规则的更新问题.对关联规则的增量式更新...对各种情况下关联规则的更新问题进行了讨论,说明了其均可以转化为数据库不变、支持度改变的情况来讨论.UA算法在充分利用原有信息的基础上,提高了算法的效率.
  • 关联规则

    千次阅读 2014-05-14 19:32:14
    在数据挖掘的知识模式中,关联规则模式是比较重要的一种。关联规则的概念由Agrawal、Imielinski、Swami 提出,是数据中一种简单但很实用的规则。关联规则模式属于描述型模式,发现关联规则的算法属于无监督学习的...


    在数据挖掘的知识模式中,关联规则模式是比较重要的一种。关联规则的概念由Agrawal、Imielinski、Swami 提出,是数据中一种简单但很实用的规则。关联规则模式属于描述型模式,发现关联规则的算法属于无监督学习的方法。
    一、关联规则的定义和属性
        考察一些涉及许多物品的事务:事务1 中出现了物品甲,事务2 中出现了物品乙,事务3 中则同时出现了物品甲和乙。那么,物品甲和乙在事务中的出现相互之间是否有规律可循呢?在数据库的知识发现中,关联规则就是描述这种在一个事务中物品之间同时出现的规律的知识模式。更确切的说,关联规则通过量化的数字描述物品甲的出现对物品乙的出现有多大的影响。
        现实中,这样的例子很多。例如超级市场利用前端收款机收集存储了大量的售货数据,这些数据是一条条的购买事务记录,每条记录存储了事务处理时间,顾客购买的物品、物品的数量及金额等。这些数据中常常隐含形式如下的关联规则:在购买铁锤的顾客当中,有70 %的人同时购买了铁钉。这些关联规则很有价值,商场管理人员可以根据这些关联规则更好地规划商场,如把铁锤和铁钉这样的商品摆放在一起,能够促进销售。
        有些数据不像售货数据那样很容易就能看出一个事务是许多物品的集合,但稍微转换一下思考角度,仍然可以像售货数据一样处理。比如人寿保险,一份保单就是一个事务。保险公司在接受保险前,往往需要记录投保人详尽的信息,有时还要到医院做身体检查。保单上记录有投保人的年龄、性别、健康状况、工作单位、工作地址、工资水平等。这些投保人的个人信息就可以看作事务中的物品。通过分析这些数据,可以得到类似以下这样的关联规则:年龄在40 岁以上,工作在A 区的投保人当中,有45 %的人曾经向保险公司索赔过。在这条规则中,“年龄在40 岁以上”是物品甲,“工作在A 区”是物品乙,“向保险公司索赔过”则是物品丙。可以看出来,A 区可能污染比较严重,环境比较差,导致工作在该区的人健康状况不好,索赔率也相对比较高。
        设R= { I1,I2 ......Im} 是一组物品集,W 是一组事务集。W 中的每个事务T 是一组物品,T  R。假设有一个物品集 A,一个事务 T,如果 A T,则称事务 T 支持物品集 A。关联规则是如下形式的一种蕴含: A→B,其中 AB 是两组物品, A IB I,且 A ∩B=。一般用四个参数来描述一个关联规则的属性: 
        1  .可信度(Confidence
        设 W  中支持物品集 A  的事务中,有 c  %的事务同时也支持物品集 B c  %称为关联规则 A→B  的可信度。简单地说,可信度就是指在出现了物品集 A  的事务 T  中,物品集 B  也同时出现的概率有多大。如上面所举的铁锤和铁钉的例子,该关联规则的可信度就回答了这样一个问题:如果一个顾客购买了铁锤,那么他也购买铁钉的可能性有多大呢?在上述例子中,购买铁锤的顾客中有 70  %的人购买了铁钉 ,  所以可信度是 70  %。
        2  .支持度(Support)
        设 W  中有 s  %的事务同时支持物品集 A  和 B s  %称为关联规则 A→B  的支持度。支持度描述了 A B  这两个物品集的并集 C  在所有的事务中出现的概率有多大。如果某天共有 1000  个顾客到商场购买物品,其中有 100  个顾客同时购买了铁锤和铁钉,那么上述的关联规则的支持度就是 10  %。
    3   .期望可信度(Expected confidence)
        设 W  中有 e  %的事务支持物品集 B e  %称为关联规则 A→B  的期望可信度度。期望可信度描述了在没有任何条件影响时,物品集 B  在所有事务中出现的概率有多大。如果某天共有 1000  个顾客到商场购买物品,其中有 200  个顾客购买了铁钉,则上述的关联规则的期望可信度就是 20  %。
    4  .作用度 (Lift)
      作用度是可信度与期望可信度的比值。作用度描述物品集 A  的出现对物品集 B  的出现有多大的影响。因为物品集 B  在所有事务中出现的概率是期望可信度;而物品集 B  在有物品集 A  出现的事务中出现的概率是可信度,通过可信度对期望可信度的比值反映了在加入 物品集 A  出现 的这个条件后,物品集 B  的出现概率发生了多大的变化。在上例中作用度就是 70  % /20  % =3.5。
      可信度是对关联规则的准确度的衡量,支持度是对关联规则重要性的衡量。支持度说明了这条规则在所有事务中有多大的代表性,显然支持度越大,关联规则越重要。有些关联规则可信度虽然很高,但支持度却很低,说明该关联规则实用的机会很小,因此也不重要。
      期望可信度描述了在没有物品集 A 的作用下,物品集 B 本身的支持度;作用度描述了物品集 A对物品集 B 的影响力的大小。作用度越大,说明物品集 B 受物品集 A 的影响越大。一般情况,有用的关联规则的作用度都应该大于 1,只有关联规则的可信度大于期望可信度,才说明 A 的出现对 B 的出现有促进作用,也说明了它们之间某种程度的相关性,如果作用度不大于 1,则此关联规则也就没有意义了。
    二、关联规则的挖掘
    在关联规则的四个属性中,支持度和可信度能够比较直接形容关联规则的性质。从关联规则定义可以看出,任意给出事务中的两个物品集,它们之间都存在关联规则,只不过属性值有所不同。如果不考虑关联规则的支持度和可信度,那么在事务数据库中可以发现无穷多的关联规则。事实上,人们一般只对满足一定的支持度和可信度的关联规则感兴趣。因此,为了发现有意义的关联规则,需要给定两个阈值:最小支持度和最小可信度,前者规定了关联规则必须满足的最小支持度;后者规定了关联规则必须满足的最小可信度。一般称满足一定要求的(如较大的支持度和可信度)的规则为强规则( Strong rules)。
      在关联规则的挖掘中要注意以下几点。
      1、充分理解数据。
      2、目标明确。
      3、数据准备工作要做好。能否做好数据准备又取决于前两点。数据准备将直接影响到问题的复杂度及目标的实现。
      4、选取恰当的最小支持度和最小可信度。这依赖于用户对目标的估计,如果取值过小,那么会发现大量无用的规则,不但影响执行效率、浪费系统资源,而且可能把目标埋没;如果取值过大,则又有可能找不到规则,与知识失之交臂。
      5、很好地理解关联规则。数据挖掘工具能够发现满足条件的关联规则,但它不能判定关联规则的实际意义。对关联规则的理解需要熟悉业务背景,丰富的业务经验对数据有足够的理解。在发现的关联规则中,可能有两个主观上认为没有多大关系的物品,它们的关联规则支持度和可信度却很高,需要根据业务知识、经验,从各个角度判断这是一个偶然现象或有其内在的合理性;反之,可能有主观上认为关系密切的物品,结果却显示它们之间相关性不强。只有很好的理解关联规则,才能去其糟粕,取其精华,充分发挥关联规则的价值。
      发现关联规则要经过以下三个步骤:
      1、连接数据,作数据准备;
      2、给定最小支持度和最小可信度,利用数据挖掘工具提供的算法发现关联规则;
      3、可视化显示、理解、评估关联规则。 
    三 、关联规则挖掘的过程
         关联规则挖掘过程主要包含两个阶段:
         第一阶段必须先从资料集合中找出所有的高频项目组(Frequent Itemsets)。
         第二阶段再由这些高频项目组中产生关联规则(Association Rules)。
         关联规则挖掘的第一阶段必须从原始资料集合中,找出所有高频项目组(Large Itemsets)。高频的意思是指某一项目组出现的频率相对于所有记录而言,必须达到某一水平。一项目组出现的频率称为支持度(Support),以一个包含A与B两个项目的2-itemset为例,我们可以经由公式(1)求得包含{A,B}项目组的支持度,若支持度大于等于所设定的最小支持度(Minimum Support)门槛值时,则{A,B}称为高频项目组。一个满足最小支持度的k-itemset,则称为高频k-项目组(Frequent k-itemset),一般表示为Large k或Frequent k。算法并从Large k的项目组中再产生Large k+1,直到无法再找到更长的高频项目组为止。
        关联规则挖掘的第二阶段是要产生关联规则(Association Rules)。从高频项目组产生关联规则,是利用前一步骤的高频k-项目组来产生规则,在最小信赖度(Minimum Confidence)的条件门槛下,若一规则所求得的信赖度满足最小信赖度,称此规则为关联规则。
        从上面的介绍还可以看出,关联规则挖掘通常比较适用与记录中的指标取离散值的情况。如果原始数据库中的指标值是取连续的数据,则在关联规则挖掘之前应该进行适当的数据离散化(实际上就是将某个区间的值对应于某个值),数据的离散化是数据挖掘前的重要环节,离散化的过程是否合理将直接影响关联规则的挖掘结果。
        四、 关联规则的分类
        按照不同情况,关联规则可以进行分类如下:
       1.基于规则中处理的变量的类别,关联规则可以分为布尔型和数值型。
        布尔型关联规则处理的值都是离散的、种类化的,它显示了这些变量之间的关系;而数值型关联规则可以和多维关联或多层关联规则结合起来,对数值型字段进行处理,将其进行动态的分割,或者直接对原始的数据进行处理,当然数值型关联规则中也可以包含种类变量。例如:性别=“女”=>职业=“秘书” ,是布尔型关联规则;性别=“女”=>avg(收入)=2300,涉及的收入是数值类型,所以是一个数值型关联规则。
        2.基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则。
        在单层的关联规则中,所有的变量都没有考虑到现实的数据是具有多个不同的层次的;而在多层的关联规则中,对数据的多层性已经进行了充分的考虑。例如:IBM台式机=>Sony打印机,是一个细节数据上的单层关联规则;台式机=>Sony打印机,是一个较高层次和细节层次之间的多层关联规则。
        3.基于规则中涉及到的数据的维数,关联规则可以分为单维的和多维的。
        在单维的关联规则中,我们只涉及到数据的一个维,如用户购买的物品;而在多维的关联规则中,要处理的数据将会涉及多个维。换成另一句话,单维关联规则是处理单个属性中的一些关系;多维关联规则是处理各个属性之间的某些关系。例如:啤酒=>尿布,这条规则只涉及到用户的购买的物品;性别=“女”=>职业=“秘书”,这条规则就涉及到两个字段的信息,是两个维上的一条关联规则。
        5. 关联规则挖掘的相关算法
        1.Apriori算法:使用候选项集找频繁项集。
          Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。
        该算法的基本思想是:首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。然后使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递推的方法。
        可能产生大量的候选集,以及可能需要重复扫描数据库,是Apriori算法的两大缺点。
        2.基于划分的算法
        Savasere等设计了一个基于划分的算法。这个算法先把数据库从逻辑上分成几个互不相交的块,每次单独考虑一个分块并对它生成所有的频集,然后把产生的频集合并,用来生成所有可能的频集,最后计算这些项集的支持度。这里分块的大小选择要使得每个分块可以被放入主存,每个阶段只需被扫描一次。而算法的正确性是由每一个可能的频集至少在某一个分块中是频集保证的。该算法是可以高度并行的,可以把每一分块分别分配给某一个处理器生成频集。产生频集的每一个循环结束后,处理器之间进行通信来产生全局的候选k-项集。通常这里的通信过程是算法执行时间的主要瓶颈;而另一方面,每个独立的处理器生成频集的时间也是一个瓶颈。
        3.FP-树频集算法
        针对Apriori算法的固有缺陷,J. Han等提出了不产生候选挖掘频繁项集的方法:FP-树频集算法。采用分而治之的策略,在经过第一遍扫描之后,把数据库中的频集压缩进一棵频繁模式树(FP-tree),同时依然保留其中的关联信息,随后再将FP-tree分化成一些条件库,每个库和一个长度为1的频集相关,然后再对这些条件库分别进行挖掘。当原始数据量很大的时候,也可以结合划分的方法,使得一个FP-tree可以放入主存中。实验表明,FP-growth对不同长度的规则都有很好的适应性,同时在效率上较之Apriori算法有巨大的提高。
        五、关联规则发掘技术在国内外的应用
        就目前而言,关联规则挖掘技术已经被广泛应用在西方金融行业企业中,它可以成功预测银行客户需求。一旦获得了这些信息,银行就可以改善自身营销。现在银行天天都在开发新的沟通客户的方法。各银行在自己的ATM机上就捆绑了顾客可能感兴趣的本行产品信息,供使用本行ATM机的用户了解。如果数据库中显示,某个高信用限额的客户更换了地址,这个客户很有可能新近购买了一栋更大的住宅,因此会有可能需要更高信用限额,更高端的新信用卡,或者需要一个住房改善贷款,这些产品都可以通过信用卡账单邮寄给客户。当客户打电话咨询的时候,数据库可以有力地帮助电话销售代表。销售代表的电脑屏幕上可以显示出客户的特点,同时也可以显示出顾客会对什么产品感兴趣。
        同时,一些知名的电子商务站点也从强大的关联规则挖掘中的受益。这些电子购物网站使用关联规则中规则进行挖掘,然后设置用户有意要一起购买的捆绑包。也有一些购物网站使用它们设置相应的交叉销售,也就是购买某种商品的顾客会看到相关的另外一种商品的广告。
        但是目前在我国,“数据海量,信息缺乏”是商业银行在数据大集中之后普遍所面对的尴尬。目前金融业实施的大多数数据库只能实现数据的录入、查询、统计等较低层次的功能,却无法发现数据中存在的各种有用的信息,譬如对这些数据进行分析,发现其数据模式及特征,然后可能发现某个客户、消费群体或组织的金融和商业兴趣,并可观察金融市场的变化趋势。可以说,关联规则挖掘的技术在我国的研究与应用并不是很广泛深入。
        近年来关联规则发掘技术的一些研究。 由于许多应用问题往往比超市购买问题更复杂,大量研究从不同的角度对关联规则做了扩展,将更多的因素集成到关联规则挖掘方法之中,以此丰富关联规则的应用领域,拓宽支持管理决策的范围。如考虑属性之间的类别层次关系,时态关系,多表挖掘等。近年来围绕关联规则的研究主要集中于两个方面,即扩展经典关联规则能够解决问题的范围,改善经典关联规则挖掘算法效率和规则兴趣性。
        本文转载自:http://blog.163.com/guochq@126/blog/static/1132860162011416107524/




    展开全文
  • 关联规则介绍

    千次阅读 2015-06-16 15:01:16
    关联规则是形如X→Y的蕴涵式,其中, X和Y分别称为关联规则的先导(antecedent或left-hand-side, LHS)和后继(consequent或right-hand-side, RHS) 。其中,关联规则XY,存在支持度和信任度。 定义:  假设 是项...

            关联规则是形如X→Y的蕴涵式,其中, X和Y分别称为关联规则的先导(antecedent或left-hand-side, LHS)和后继(consequent或right-hand-side, RHS) 。其中,关联规则XY,存在支持度和信任度。

    定义:

            假设

    是项的集合。给定一个交易数据库D,其中每个事务(Transaction)t是I的非空子集,即,每一个事务都与一个唯一的标识符TID(Transaction ID)对应。关联规则在D中的支持度(support)是D中事务同时包含X、Y的百分比,即概率;置信度(confidence)是D中事务已经包含X的情况下,包含Y的百分比,即条件概率。如果满足最小支持度阈值和最小置信度阈值,则认为关联规则是有趣的。这些阈值是根据挖掘需要人为设定。

    例子:

    TID
    网球拍
    网 球
    运动鞋
    羽毛球
    1
    1
    1
    1
    0
    2
    1
    1
    0
    0
    3
    1
    0
    0
    0
    4
    1
    0
    1
    0
    5
    0
    1
    1
    1
    6
    1
    1
    0
    0

            上表是顾客购买记录的数据库D,包含6个事务。项集I={网球拍,网球,运动鞋,羽毛球}。考虑关联规则(频繁二项集):网球拍与网球,事务1,2,3,4,6包含网球拍,事务1,2,6同时包含网球拍和网球,X^Y=3, D=6,支持度(X^Y)/D=0.5;X=5, 置信度(X^Y)/X=0.6。若给定最小支持度α = 0.5,最小置信度β = 0.6,认为购买网球拍和购买网球之间存在关联。

    挖掘过程:

            关联规则挖掘过程主要包含两个阶段:第一阶段必须先从资料集合中找出所有的高频项目组(Frequent Itemsets)即:计算出满足支持度的项目组(项集),第二阶段再由这些高频项目组中产生关联规则(Association Rules),即:再计算出满足置信度的项目组。
            关联规则挖掘的第一阶段必须从原始资料集合中,找出所有高频项目组(Large Itemsets)。高频的意思是指某一项目组出现的频率相对于所有记录而言,必须达到某一水平。一项目组出现的频率称为支持度(Support),以一个包含A与B两个项目的2-itemset为例,我们可以经由公式(1)求得包含{A,B}项目组的支持度,若支持度大于等于所设定的最小支持度(Minimum Support)门槛值时,则{A,B}称为高频项目组。一个满足最小支持度的k-itemset,则称为高频k-项目组(Frequent k-itemset),一般表示为Large k或Frequent k。算法并从Large k的项目组中再产生Large k+1,直到无法再找到更长的高频项目组为止。
            关联规则挖掘的第二阶段是要产生关联规则(Association Rules)。从高频项目组产生关联规则,是利用前一步骤的高频k-项目组来产生规则,在最小信赖度(Minimum Confidence)的条件门槛下,若一规则所求得的信赖度满足最小信赖度,称此规则为关联规则。例如:经由高频k-项目组{A,B}所产生的规则AB,其信赖度可经由公式(2)求得,若信赖度大于等于最小信赖度,则称AB为关联规则。
            关联规则挖掘通常比较适用与记录中的指标取离散值的情况。如果原始数据库中的指标值是连续的数据,则在关联规则挖掘之前应该进行适当的数据离散化(实际上就是将某个区间的值对应于某个值),数据的离散化是数据挖掘前的重要环节,离散化的过程是否合理将直接影响关联规则的挖掘结果。

    算法的分类:

    基于规则中处理的变量的类别

             关联规则处理的变量可以分为布尔型和数值型。布尔型关联规则处理的值都是离散的、种类化的,它显示了这些变量之间的关系;而数值型关联规则可以和多维关联或多层关联规则结合起来,对数值型字段进行处理,将其进行动态的分割,或者直接对原始的数据进行处理,当然数值型关联规则中也可以包含种类变量。例如:性别=“女”=>职业=“秘书” ,是布尔型关联规则;性别=“女”=>avg(收入)=2300,涉及的收入是数值类型,所以是一个数值型关联规则。

    基于规则中数据的抽象层次

            基于规则中数据的抽象层次,可以分为单层关联规则和多层关联规则。在单层的关联规则中,所有的变量都没有考虑到现实的数据是具有多个不同的层次的;而在多层的关联规则中,对数据的多层性已经进行了充分的考虑。例如:IBM台式机=>Sony打印机,是一个细节数据上的单层关联规则;台式机=>Sony打印机,是一个较高层次和细节层次之间的多层关联规则。

    基于规则中涉及到的数据的维数

           关联规则中的数据,可以分为单维的和多维的。在单维的关联规则中,我们只涉及到数据的一个维,如用户购买的物品;而在多维的关联规则中,要处理的数据将会涉及多个维。换成另一句话,单维关联规则是处理单个属性中的一些关系;多维关联规则是处理各个属性之间的某些关系。例如:啤酒=>尿布,这条规则只涉及到用户的购买的物品;性别=“女”=>职业=“秘书”,这条规则就涉及到两个字段的信息,是两个维上的一条关联规则。

    相关算法:

    Apriori算法

            Apriori算法:使用候选项集找频繁项集
            Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。
    该算法的基本思想是:首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。然后使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递推的方法。
            Apriori算法采用了逐层搜索的迭代的方法,算法简单明了,没有复杂的理论推导,也易于实现。但其有一些难以克服的缺点:
         (1)对数据库的扫描次数过多。
         (2)Apriori算法会产生大量的中间项集。
         (3)采用唯一支持度。
         (4)算法的适应面窄。

    基于划分的算法

            Savasere等设计了一个基于划分的算法。这个算法先把数据库从逻辑上分成几个互不相交的块,每次单独考虑一个分块并对它生成所有的频集,然后把产生的频集合并,用来生成所有可能的频集,最后计算这些项集的支持度。这里分块的大小选择要使得每个分块可以被放入主存,每个阶段只需被扫描一次。而算法的正确性是由每一个可能的频集至少在某一个分块中是频集保证的。该算法是可以高度并行的,可以把每一分块分别分配给某一个处理器生成频集。产生频集的每一个循环结束后,处理器之间进行通信来产生全局的候选k-项集。通常这里的通信过程是算法执行时间的主要瓶颈;而另一方面,每个独立的处理器生成频集的时间也是一个瓶颈。

    FP-树频集算法

            针对Apriori算法的固有缺陷,J. Han等提出了不产生候选挖掘频繁项集的方法:FP-树频集算法。采用分而治之的策略,在经过第一遍扫描之后,把数据库中的频集压缩进一棵频繁模式树(FP-tree),同时依然保留其中的关联信息,随后再将FP-tree分化成一些条件库,每个库和一个长度为1的频集相关,然后再对这些条件库分别进行挖掘。当原始数据量很大的时候,也可以结合划分的方法,使得一个FP-tree可以放入主存中。实验表明,FP-growth对不同长度的规则都有很好的适应性,同时在效率上较之Apriori算法有巨大的提高。


    参考:百度百科



    展开全文
  • 在数据挖掘的知识模式中,关联规则模式是比较重要的一种。关联规则的概念由Agrawal、Imielinski、Swami 提出,是数据中一种简单但很实用的规则。关联规则模式属于描述型模式,发现关联规则的算法属于无监督学习的...
  • 但T+1本身的延迟性会导致用户在产生特定行为时不能被实时触达,无法充分发挥数据的价值,取得更优的运营效果。 在此背景下,运营业务需要着手挖掘用户行为实时数据,如实时浏览、下单、退款、搜索等,对满足运营需求...
  • 根据对中文问题的分析可知,问题中的疑问词和中心词等关键词对问题所属类型起着决定性的作用。提出利用自学习方法...该方法充分利用了关键词对分类的贡献。实验结果表明,该分类方法有很大的改进,准确率达到了84%。
  • 规则引擎 clara-rules

    千次阅读 2016-11-01 17:38:46
    本文的主题是规则引擎,主要内容包括规则引擎的实现算法 rete算法,clojure开源的规则引擎clara-rules对规则的处理方式和特点,以及clojure edn文件格式处理等内容。那么什么是规则引擎呢?规则引擎 规则引擎由推理...
  • 由于通信网络是动态变化的,用于动态网络资源和服务的自适应关联规则算法需要充分利用和维护原有规则来发现新规则,使网络结构与规则库都能快速更新,为此提出了新型的动态关联规则挖掘算法IDARM。理论分析与仿真...
  • 针对逆向工程中的三角网格重构问题,提出了一种保持尖锐特征的半规则三角网格模型细分曲面重构算法,以充分利用细分曲面的多分辨特性。首先经提取尖锐特征和删除最大独立点集得到基网格,然后利用插值Loop细分和最近...
  • udev规则

    千次阅读 2012-05-28 15:50:20
    1.udev规则文件:   /etc/udev/rules.d/ # 用户自定义的规则文件一般放在这  /lib/udev/rules.d/ 2.udev主配置文件:  /etc/udev/udev.conf 3.(文件名中的)50为默认值;数值越小越先被解析。 4.udev...
  • 提出了一种基于关联...该方法充分利用国内42个城市预测案例积累的数据,通过数据挖掘并分析结果可以看出特定预测模型适用度与哪些相关因素有关,运用这些规则,得到合理的模型推荐结果。基于关联规则的适合模型推荐方法
  • Nginx默认没有开启利用多核cpu,我们可以通过增加worker_cpu_affinity配置参数来充分利用多核cpu的性能。cpu是任务处理,计算最关键的资源,cpu核越多,性能就越好。 规则设定 (1)cpu有多少个核,就有几位数...
  • “区块链自治规则”是指建立在区块链上的去中心化自治组织系统的运行方式和策略安排等规则,为了叙述方便,简称为此。 区块链自治规则是由计算机代码实现,由区块链协议保障其自动运行,根据既定条件自动触发实现。...
  • 关联规则算法

    万次阅读 2014-02-17 11:31:25
    关联规则 编辑 关联规则是形如X→Y的蕴涵式,其中, X和Y分别称为关联规则的先导(antecedent或left-hand-side, LHS)和后继(consequent或right-hand-side, RHS) 。 目录 1简介 ▪ 故事 ▪ 定义 ▪...
  • 基于规则的中文分词方法

    千次阅读 2019-06-23 15:51:52
    这种方法是将待分的句子与一个充分大的词典中的词语进行匹配。常用的有:正向最大匹配,逆向最大匹配,最少切分法。实际应用中,将机械分词作为初分手段,利用语言信息提高切分准确率。优先识别具有明显特征的词,以...
  • eplan项目中自动图号规则设置

    千次阅读 2021-01-28 09:21:17
    eplan项目中,有时候我们需要制定一些关于图纸上图号的规则,如果这些全部手动就跟CAD一样了,我们要充分发挥eplan中能批量自动操作的特性,比如我们要设计一个图号的规则。图号包括: 设备号--高层代号--位置代号--...
  • 羽毛球赛事结论

    千次阅读 2012-08-04 23:09:57
    继续申诉,战术如果有对错,中国对就真应该罢赛,损失的就无非是几个金牌和那些毛绒玩具而已。...当看了人民网上的"日本女足故意平局 大阪市长:赞成充分利用规则”,这个让之前的怒火,更是爆发了。
  • 该方案充分考虑了非规则LDPC码的度分布影响和高阶调制技术的不均等错误保护(UEP)特性。在调制映射过程中,对不同度数的变量节点进行不同级别的保护。利用高斯近似(GA)算法证明,该方案能提升系统性能。仿真结果表明,本...
  • 规则与团队开发

    千次阅读 2006-06-07 10:38:00
    规则是各种规章制度之外,约定俗成的行为准则。...通过不断完善企业的规章制度,可以尽可能地避免不好的潜规则,引导利用好的潜规则。 记得余世维先生在他的管理学讲座中提到,日本人在工作中不太愿
  • (本文基于本人近三发表于《计算机教育》2014年第18期)利用博客提交作业的程序设计课程实践模式贺利坚 卢云宏(烟台大学 计算机学院,山东 烟台 264005) 摘 要:探讨利用博客提交作业的实践教学模式改革,在合作...
  • Husky数据分析——招聘信息背后的潜规则揭秘

    万次阅读 热门讨论 2016-12-13 16:43:13
    这里husky充分调用机器资源并进行高效计算,使得快速获取大量爬虫数据得到实现,其中爬虫过程利用requests,xpath,bs4,re等抓取有用信息。 数据格式怎样?这300多万条信息以json格式分布式保存在hdfs中,其中每条...
  • 基于关联规则的分类算法

    万次阅读 2017-04-11 10:09:38
    自1993年Agrawal提出数据库中的关联规则挖掘后,关联规则挖掘算法及应用得到迅速发展。关联规则的功能不再局限于概念描述。1997年,Ali等人提出了使用分类关联规则进行部分分类的思想,但他们当时认为关联规则在分类...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 120,532
精华内容 48,212
关键字:

如何充分利用规则