-
Notifications
You must be signed in to change notification settings - Fork 82
Expand file tree
/
Copy pathSingleToken.cs
More file actions
79 lines (66 loc) · 3.06 KB
/
SingleToken.cs
File metadata and controls
79 lines (66 loc) · 3.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
using UID;
using MessagePack;
using Mosaik.Core;
using System;
using System.Collections.Generic;
namespace Catalyst
{
[MessagePackObject(true)]
public partial class SingleToken : IToken
{
[Key(0)] public string Value { get; set; }
[Key(1)] public int Hash { get; set; }
[Key(2)] public int IgnoreCaseHash { get; set; }
[Key(3)] public Dictionary<string, string> Metadata { get; set; }
[Key(4)] public IReadOnlyList<EntityType> EntityTypes { get; set; }
[Key(5)] public int Length => Value.Length;
[Key(6)] public PartOfSpeech POS { get; set; }
[Key(7)] public Language Language { get; set; }
[Key(8)] public string Lemma { get; set; }
[IgnoreMember] public string OriginalValue => Value;
[IgnoreMember] public int Begin { get; set; }
[IgnoreMember] public int End { get; set; }
[IgnoreMember] public ReadOnlySpan<char> ValueAsSpan => Value.AsSpan();
[IgnoreMember] public ReadOnlySpan<char> OriginalValueAsSpan => Value.AsSpan();
[IgnoreMember] public int Index => throw new NotImplementedException();
[IgnoreMember] public string Replacement { get; set; }
[IgnoreMember] public int Head { get; set; }
[IgnoreMember] public string DependencyType { get; set; }
[IgnoreMember] public float Frequency { get; set; }
[IgnoreMember] public ReadOnlySpan<char> LemmaAsSpan => Lemma.AsSpan();
[IgnoreMember] public char? PreviousChar => null;
[IgnoreMember] public char? NextChar => null;
public SingleToken(IToken source, Language language)
{
Value = source.Value;
Hash = source.Hash;
IgnoreCaseHash = source.IgnoreCaseHash;
//Metadata = (source.Metadata is object && source.Metadata.Count > 0) ? source.Metadata.ToDictionary(kv => kv.Key, kv => kv.Value) : null;
//EntityTypes = source.EntityTypes.ToArray();
POS = source.POS;
Language = language;
}
public SingleToken(string value, Language language)
{
Value = value;
Hash = value.CaseSensitiveHash32();
IgnoreCaseHash = value.IgnoreCaseHash32();
POS = PartOfSpeech.NONE;
Language = language;
}
public SingleToken(string value, PartOfSpeech pos, int hash, int ignoreCaseHash, Language language, string lemma)
{
Value = value;
Hash = hash;
IgnoreCaseHash = ignoreCaseHash;
POS = pos;
Language = language;
Lemma = lemma;
}
public void AddEntityType(EntityType entityType) => throw new NotImplementedException();
public void UpdateEntityType(int ix, ref EntityType entityType) => throw new NotImplementedException();
public void RemoveEntityType(string entityType) => throw new NotImplementedException();
public void RemoveEntityType(int ix) => throw new NotImplementedException();
public void ClearEntities() => throw new NotImplementedException();
}
}