OSDN Git Service

MMFへのアクセスをアンマネージドポインタ経由として高速化
[nmecab/NMeCabRepo2.git] / src / LibNMeCab / Core / Token.cs
1 //  MeCab -- Yet Another Part-of-Speech and Morphological Analyzer\r
2 //\r
3 //  Copyright(C) 2001-2006 Taku Kudo <taku@chasen.org>\r
4 //  Copyright(C) 2004-2006 Nippon Telegraph and Telephone Corporation\r
5 using System;\r
6 using System.Collections.Generic;\r
7 using System.Text;\r
8 using System.IO;\r
9 \r
10 namespace NMeCab.Core\r
11 {\r
12     public struct Token\r
13     {\r
14         #region  Const/Field/Property\r
15 \r
16         /// <summary>\r
17         /// 右文脈 id\r
18         /// </summary>\r
19         public ushort LcAttr;\r
20 \r
21         /// <summary>\r
22         /// 左文脈 id\r
23         /// </summary>\r
24         public ushort RcAttr;\r
25 \r
26         /// <summary>\r
27         /// 形態素 ID\r
28         /// </summary>\r
29         public ushort PosId;\r
30 \r
31         /// <summary>\r
32         /// 単語生起コスト\r
33         /// </summary>\r
34         public short WCost;\r
35 \r
36         /// <summary>\r
37         /// 素性情報の位置\r
38         /// </summary>\r
39         public uint Feature;\r
40 \r
41         /// <summary>\r
42         /// reserved for noun compound\r
43         /// </summary>\r
44         public uint Compound;\r
45 \r
46         #endregion\r
47 \r
48         #region Method\r
49 \r
50         public static Token Create(BinaryReader reader)\r
51         {\r
52             return new Token()\r
53             {\r
54                 LcAttr = reader.ReadUInt16(),\r
55                 RcAttr = reader.ReadUInt16(),\r
56                 PosId = reader.ReadUInt16(),\r
57                 WCost = reader.ReadInt16(),\r
58                 Feature = reader.ReadUInt32(),\r
59                 Compound = reader.ReadUInt32()\r
60             };\r
61         }\r
62 \r
63         public override string ToString()\r
64         {\r
65             return string.Format("[LcAttr:{0}][RcAttr:{1}][PosId:{2}][WCost:{3}][Feature:{4}][Compound:{5}]",\r
66                                  this.LcAttr,\r
67                                  this.RcAttr,\r
68                                  this.PosId,\r
69                                  this.WCost,\r
70                                  this.Feature,\r
71                                  this.Compound);\r
72         }\r
73 \r
74         #endregion\r
75     }\r
76 }\r